我有一个对象列表。例如。 List<coin>
它们包含一个字符串(denom)和一个 int(年)。
如果列表包含:
"Quarter", 1954
"Quarter", 1990
"Penny", 1925
"Nickel", 1900
"Nickel", 2000
我怎样才能得到一个结果列表,其中包含最近一年的唯一值?例如。:
"Quarter", 1990
"Penny", 1925
"Nickel", 2000
最佳答案
您可以通过按名称分组,然后排序并获取第一个结果,或使用类似 MaxBy
的内容来完成此操作。来自 MoreLINQ :
var query = coins.GroupBy(x => x.Name)
.Select(g => g.MaxBy(x => x.Year));
或者
var query = coins.GroupBy(x => x.Name)
.Select(g => g.OrderByDescending(x => x.Year).First());
关于Linq 通过比较选择不同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5770618/