c# - 如何选择具有最高属性 A 值的对象,按属性 B 分组?

标签 c# .net linq ienumerable

例如,如果我有一个具有以下属性的对象列表

No  Grouper Sorter
1     X       3
2     X       2
3     X       1
4     Y       3
5     Y       2
6     Y       5
7     Z       4

我希望结果包含 3 号对象(X 具有最高排序器)、5 号对象(Y 具有最高排序器)和 7 号对象(Z 具有最高排序器,这里没有其他选择)。

No  Grouper Sorter
3     X       1
5     Y       2
7     Z       4

我该怎么做,例如使用林克?我也不介意是否有没有 Linq 的干净简单的解决方案。

最佳答案

var result = list.GroupBy(x=>x.Grouper)
                .Select(x=>x.OrderBy(y=>y.Sorter).First())
                .ToList();

关于c# - 如何选择具有最高属性 A 值的对象,按属性 B 分组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16456741/

相关文章:

c# - WCF 双工 : Send callback to a specific subscribed ASP. NET Webforms 客户端

c# - 使用 while 将字符串拆分为两个单词

C# WPF Web 浏览器控件 : How to use JavaScript

.net - 在 Rijndael 加密中对许多文件使用静态 IV 值是否可以?

.net - VB.Net Lambda 查询

c# - 如何在安装程序之前终止进程?

c# - 美化多个 XSD 文件

c# - 将 Autofac 转换为简单的注入(inject)器

c# - 从列表中删除不常见的项目

c# - LINQ 转换 int64 问题