C# 按Distinct和对象属性Larget值排序列表
我需要安排我的列表,这样我将只有具有最大Object X属性的不同对象项。例如:我有以下对象列表:C# 按Distinct和对象属性Larget值排序列表,c#,linq,lambda,C#,Linq,Lambda,我需要安排我的列表,这样我将只有具有最大Object X属性的不同对象项。例如:我有以下对象列表: MyList : object[0] : name: dani x:3; object[1] : name:dani; x:1; object[2]: name:joey; x:5; object[3]: name:joey; x:1; 我需要找到具有最大x值的不同对象,这样我就可以得到包含两个对象的新列表,如下所示: new List: object[0] :name:dani;
MyList :
object[0] :
name: dani
x:3;
object[1] :
name:dani;
x:1;
object[2]:
name:joey;
x:5;
object[3]:
name:joey;
x:1;
我需要找到具有最大x值的不同对象,这样我就可以得到包含两个对象的新列表,如下所示:
new List:
object[0] :name:dani;x:3
object[1] :name:joei;x:5
我怎样才能找到新的名单?Lambda ex会很好
myObjects.GroupBy(o => o.name).Select(g => g.OrderByDescending(o => o.x).First())
鉴于您没有提供您使用的Linq提供程序的详细信息,这是最好的通用方法。您可以使用morelinq中的MaxBy扩展方法在Linq2对象中加快速度:
使用此代码:
mylist.GroupBy(o => o.name).Select(g => g.OrderByDescending(o => o.x).First())
mylist.GroupBy(o => o.name).Select(g => g.OrderByDescending(o => o.x).First())