gpt4 book ai didi

c# - linq在groupby之后排序分组元素

转载 作者:太空宇宙 更新时间:2023-11-03 21:50:42 24 4
gpt4 key购买 nike

我有一个看起来像这样的表:

| 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 并返回包含 FruitKind 为 3 或 4 的水果的所有 BasketIDs 的列表(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();

关于c# - linq在groupby之后排序分组元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14705406/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com