这可能是关于LINQ的初学者问题,但假设我有一组具有DateTime属性的Items,其中一个日期最多有一个项目,那么我如何选择最近的N个项目从参考日期开始,也就是说,选择具有较小日期且最大日期的N个项目?
我的天真想法是首先选择日期小于参考日期的项目,按日期排序,然后从该子集中选择前N个项目。
var recentItems = from item in dataContext.Items
where item.Date<=date
orderby item.Date descending
select item;
var mostRecentItems = recentItems.Take(5).ToList();
这是实现目标的“正确”方式吗?还有更好的方法吗?