所以,我有一个看起来像这样的列表.它基本上是一堆物品的状态历史,最近的状态代表当前状态.
Record Id State Date ===== === ========= ======= 1 A Waiting Jan 01 2 A InProgress Jan 02 3 A Finished Jan 03 4 B Waiting Jan 02 5 C Waiting Jan 01 6 C InProgress Jan 02 7 D Waiting Jan 01 8 D InProgress Jan 02
我正在寻找的是能够查询每个项目的“当前”状态.
例如,我想说:“给我所有的ID都是’InProgress’”并获得Id D和Id C,但不是Id A(因为它的最新状态是’完成’).
我知道我必须做一些分组和一些订购或Maxing,但我不能完全把它放在一起.
解决方法
myList.GroupBy(m => m.Id) .Select(g => g.OrderByDescending(x => x.Date).First()) .Where(<your filter>);