目前我有一个对象的列表
,我需要在其中找到所有 具有最大值的事件。
目前我的解决方案是:
Foo maxFoo = list.OrderByDescending(foo => foo.A).First();
List<Foo> maxFoos = new List<Foo>();
foreach(Foo foo in list) {
if (foo.A.Equals(maxFoo.A)) {
maxFoos.Add(foo);
}
}
但是我想知道是否有办法在单个 Linq
表达式中执行此操作。
我看过的所有资源都只是指获取一个对象的最大值。
注意:目前,我想知道一个不依赖于MoreLinq的解决方案。
最佳答案
可以按属性分组,然后按键排序,取第一个的内容,像这样:
var res = list
.GroupBy(item => item.A)
.OrderByDescending(g => g.Key)
.First()
.ToList();
关于c# - Linq 查询以检索具有最大值的所有对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33248889/