[英]linq ordering grouped elements after groupby
我有一個看起來像這樣的表:
| FruitID | BasketID | FruitKind | HarvestTime |
| 23 | 2 | 6 | 1/13/2013 |
| 24 | 2 | 3 | 1/19/2013 |
| 25 | 5 | 4 | 1/21/2013 |
| 26 | 5 | 3 | 1/31/2013 |
| 27 | 5 | 6 | 2/3/2013 |
我想查詢所有那些在某個列表中的水果BasketID
,組結果由BasketID
,每個組內,看看最后HarvestTime
並返回所有的列表BasketIDs
含有水果與FruitKind
的3或4 (FruitKind的值可以在1到8之間)。 例如,如果我們傳入BasketID
2和5,則BasketID
2將返回,因為其最新的FruitID
24的FruitKind
為3但BasketID
5的FruitID
27屬於種類6。
這就是我被困的地方:
var TheQuery = (from a in MyDC.TableFruits
where TheListOfBasketIDs.Contains(a.BasketID)
group a by a.BasketID into g
where .... "latest FruitID has FruitKind == to 3 || 4"
select g.Key).ToList();
我需要在每個組中對HarvestTime進行排序,以便我可以測試最新Fruit的FruitKind。 謝謝你的建議。
如果我理解正確的話,那么
var TheQuery = (from a in MyDC.TableFruits
where TheListOfBasketIDs.Contains(a.BasketID)
group a by a.BasketID into g
let lastFruitKind = g.OrderByDescending(x => x.HarvestTime)
.First().FruitKind
where lastFruitKind == 3 ||
lastFruitKind == 4
select g.Key).ToList();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.