這可能是一個關於LINQ的新手問題,但假設我有一組具有DateTime屬性的項目,一個日期至多有一個項目,我將如何去選擇N個最近的項目參考日期,即日期小於所請求日期的N個項目,以及最大日期?
我的天真想法是首先選擇日期小於參考日期的項目,按日期排序,然後從該子集中選擇N個第一項。選擇n最大使用LINQ
var recentItems = from item in dataContext.Items
where item.Date<=date
orderby item.Date descending
select item;
var mostRecentItems = recentItems.Take(5).ToList();
這是做到這一點的「正確」方式,還是明顯有更好的方法來實現我的目標?
DataContext來自EF。並感謝對日期索引和使用ToList()的有用評論。在這個特殊情況下,我確實需要一個列表,即使原因在問題描述中沒有提及! – Mathias 2010-05-11 00:36:26