【发布时间】:2013-07-15 08:49:05
【问题描述】:
我正在尝试在 .NET LINQ 中按组返回最近的项目。
这让我想起了在 Sql 中执行PARTITION,我们在其中分区并获得每个分区的前 1 个,按最近的(每个分区)排序。
到目前为止,我已经开始使用 linq 代码了..
from p in products
group p by new {p.Provider.ProductId, p.Provider.Name} into g
但我不知道如何添加order by p.CreatedOn desc 并获得.Take(1),每个分区/组。
【问题讨论】:
-
select g.OrderByDescending(x => x.CreatedOn).First()? -
或 FirstOrDefault() 会更好?
-
不! omg ... /me跑去试试...
-
@Alicia 如果没有任何项目,首先就不会有一个组,所以
OrDefault将是多余的
标签: c# .net linq linq-to-objects