【发布时间】:2016-10-12 15:33:19
【问题描述】:
我很想知道是否有某种方法不需要 lambda 运算符,甚至不需要参数来投影简单值类型列表的元素。以下列情况为例:
var unorderedList = new List<int>{ 3, 1, 2 };
var orderedList = unorderedList.OrderBy(x => x);
x => x 对我来说看起来有点多余,因为 int 没有任何成员可以排序,就像更复杂的对象一样。那么是否有任何其他方法(最好在 Linq 中)返回一个有序列表而没有额外的参数?
就像:var orderedList = unorderedList.Order();
【问题讨论】:
-
没有,但你可以自己制作:)
-
"因为一个 int 没有任何成员" 好吧,你仍然可以做
x => Math.Sin(x)或类似的:)。 -
@AlexD 你有一个很好的观察,我仍然想知道这是否(应该)没有,为集合中的当前类型设置一个默认值。
-
@meJustAndrew 我认为应该,但事实并非如此:)。
-
这个问题的更通用版本 - LINQ Identity function。 C#6 中仍然没有标识函数来使
OrderBy在这种情况下看起来更漂亮。