[c#]找到一组项在集合中的最后一个项目吗?

标签: Linq C#
发布时间: 2017/2/28 22:33:36
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我的项的集合都有一个键和一个"序号"。 我试图为每个键......"最后"的序列号查找的项目但是序列号是在一个"窗口"内 (因为它们是基于的日期)。

示例数据

Key     Seq     other data.....
___     ___     _________________
ABC     4       
ABC     5
ABC     6
FGH     1
FGH     2
FGH     3
FGH     4
FGH     5
FGH     6
FGH     7
FGH     8
FGH     9
FGH     10
OPQ     6
RST     3
RST     4

和我要寻找的结果︰

ACB     6
FGH     10
OPQ     6
RST     4

这可以通过遍历一个接一个,每个键,但似乎必须是清洁的方式。

解决方法 1:

是项保证原始数据中进行排序?

如果这样,那么你可以这样做︰

var result = items.GroupBy(item => item.Key).Select(group => group.Last());

如果他们最初可坏了,然后说,这是会工作的︰

var result = items.GroupBy(item => item.Key)
    .Select(group => group.OrderByDescending(item => item.Seq).First());
赞助商