Linq命令IEnumerable(由枚举元素本身)

时间:2017-11-17 10:51:22

标签: .net linq sorting

这似乎是一个显而易见的问题,可能会有关于此主题的先前问题,如果必要,请指出并关闭,因为我找不到它们。

是否有任何Linq扩展方法返回元素本身的有序序列?我知道它可以通过以下方式实现:

IEnumerable<int> myIntegers = new int[]{4, 6, 34, 987, -13};
IEnumerable<int> myOrderedIntegers = myIntegers.OrderBy(i => i);

我不喜欢这样,对于这么简单的操作来说似乎太冗长了。我知道我也可以这样做:

List<int> myOtherOrderedIntegers = myIntegers.ToList();
myOtherOrderedIntegers.Sort();

但是...再见...推迟评估,甚至更加冗长。我可以编写我的扩展方法,如...

public static IEnumerable<T> Order<T>(this IEnumerable<T> elements) => elements.OrderBy(e => e);
public static IEnumerable<T> OrderDescending<T>(this IEnumerable<T> elements) => elements.OrderByDescending(e => e);

是否已有可以实现此简单操作的Linq扩展方法?我发现它已经没有实施了。

提前致谢。

1 个答案:

答案 0 :(得分:1)

Is there any other, less verbose method than myIntegers.OrderBy(i => i)? Like myIntegers.Order()? No there is not. You can write them yourself if you want to, you already pasted the code. You will have to live with the 8 bytes of wasted space in your source.