使用Linq在列表排序中找到属性A的第一个对象,然后是属性B.

时间:2009-09-24 01:54:22

标签: .net linq c#-3.0

我有一个无序的点列表(List<Point>),我希望在按X和Y排序时找到列表中的第一个点。

注意:我不想实际更改列表中项目的顺序。

2 个答案:

答案 0 :(得分:10)

这不会改变原始列表的顺序,但会对列表的结果枚举进行排序,并选择排序后的第一个点。它通过返回默认(null)Point来处理空列表大小写。

var firstPoint = Points.OrderBy( p => p.X ).ThenBy( p => p.Y ).FirstOrDefault();

答案 1 :(得分:5)

var firstPoint = (from p in Points orderby p.X, p.Y select p).FirstOrDefault();