Как вернуть определенное максимальное количество элементов из коллекции, используя linq - PullRequest
1 голос
/ 01 августа 2010

У меня есть код ниже, который создает коллекцию и возвращает ее, отсортированную по свойству

var appChanges = GetHistory().ToList();
return appChanges.OrderByDescending(r => r.Change.When);

Я хочу, чтобы это возвращало не более 50 элементов (или всего, если размер коллекции меньше 50)

как я могу сделать это в LINQ?

Ответы [ 3 ]

4 голосов
/ 01 августа 2010

Вы ищете Возьмите .Смотри http://msdn.microsoft.com/en-us/library/bb503062.aspx

appChanges.OrderByDescending(r => r.Change.When).Take(50);
4 голосов
/ 01 августа 2010

Используйте функцию .Take(...).

Вы также можете использовать .Skip(..) вместе с ним для пейджинговых запросов.

Кроме того, вы захотите избегать использования .ToList() так рано, если сможете избежать его, потому что он оценит запрос и вернет набор результатов.

2 голосов
/ 01 августа 2010
return appChanges.OrderByDescending(r => r.Change.When).Take(n);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...