Это, скорее всего, новичок в вопросе 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