gpt4 book ai didi

c# - 是否可以在 LINQ 中执行 Group By 但仅返回 'most recent' 项(每组)?

转载 作者:行者123 更新时间:2023-12-02 21:56:43 24 4
gpt4 key购买 nike

我正在尝试返回 .NET LINQ 中每组的最新项目。

这让我想起在 Sql 中执行PARTITION,我们进行分区并获取每个分区的前 1 个,按最新(每个分区)排序。

到目前为止,我已经开始了 linq 代码..

from p in products
group p by new {p.Provider.ProductId, p.Provider.Name} into g

但我不确定如何通过 p.CreatedOn desc 添加订单并获取每个分区/组的.Take(1)

最佳答案

类似于(附加在查询末尾):

select new {
g.Key,
Product = g.OrderByDescending(x => x.CreatedOn).First()
}

应该完成这项工作;或者也许更方便:

select new {
g.Key.ProductId,
g.Key.Name,
Product = g.OrderByDescending(x => x.CreatedOn).First()
}

或者,如果您不需要明确需要 key (因为无论如何它都可以在该项目下使用),那么只需:

select g.OrderByDescending(x => x.CreatedOn).First()

基本上,每个gIGrouping<T> (对于一些匿名 T ),这意味着每个 g .Key属性是您的组,每个 g IEnumerable<>原始元素的序列(大概是 Product )。

关于c# - 是否可以在 LINQ 中执行 Group By 但仅返回 'most recent' 项(每组)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17650148/

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