tva*_*son 32
Max用于查找属性的最大值.获得最大值后,可以使用Where子句选择值匹配的对象.
var maxZ = list.Max( obj => obj.Z );
var maxObj = list.Where( obj => obj.Z == maxZ );
Run Code Online (Sandbox Code Playgroud)
Guf*_*ffa 19
要获得具有最大Z值的对象,您可以按降序对Z值进行排序并获取第一个项目:
TypeOfObject oldest = list.OrderByDescending(x => x.Z).First();
Run Code Online (Sandbox Code Playgroud)
编辑:
更改它以使用IEnumerable.OrderByDescending方法而不是List.Sort.
编辑2:
如果您想要性能,这比最快的LINQ解决方案快四倍:
int high = Int32.MinValue;
List<TypeOfObject> highest = new List<TypeOfObject>();
foreach (TypeOfObject v in list) {
if (v.Z >= high) {
if (v.Z > high) highest.Clear();
high = v.Z;
highest.Add(v);
}
}
Run Code Online (Sandbox Code Playgroud)
int maxAge = myList.Max(obj => obj.Z);
Run Code Online (Sandbox Code Playgroud)
使用的参数是lambda表达式.此表达式指示要使用哪个属性(在本例中为Z)以获取最大值.这将获得最大年龄.如果你想要年龄最大的对象,你可以按年龄排序并得到第一个结果:
MyType maxItem = myList.OrderByDescending(obj => obj.Z).First();
Run Code Online (Sandbox Code Playgroud)
如果您这样做,请注意,如果两个或多个项目都具有最大年龄,则只选择其中一个.
| 归档时间: |
|
| 查看次数: |
53351 次 |
| 最近记录: |