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

Cod*_*ats 3 .net linq c#-3.0

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

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

tva*_*son 10

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

var firstPoint = Points.OrderBy( p => p.X ).ThenBy( p => p.Y ).FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)


egl*_*ius 5

var firstPoint = (from p in Points orderby p.X, p.Y select p).FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)