LINQ Ассортимент товаров из списка <MyObject> - PullRequest
1 голос
/ 17 ноября 2010

Используя Linq, как я могу получить список объектов, в которых их порядковый номер находится в диапазоне от 5 до 27.

Существует неизвестное число MyObject, поэтому в некоторых случаях ничего не может быть найдено.

"allItems" всегда в порядке, поэтому требуется порядковый номер.

Например:

List<MyObject>  allItems = GetAllItems();
List<MyObject>  myRange = allItems.LINQSTATEMENTHERE(5 to 27th items);

Ответы [ 2 ]

9 голосов
/ 17 ноября 2010

Используйте комбинацию Skip () и Take ():

int from = 5;
int to = 27;
var myRange = allItems.Skip(from - 1).Take(to - from);
1 голос
/ 17 ноября 2010

Поскольку вам требуется немедленное выполнение (вы хотите загрузить результаты в список), нет необходимости использовать LINQ здесь; Вы можете использовать метод экземпляра GetRange на List<T>:

List<MyObject> myRange = allItems.GetRange(from, to - from + 1);

Конечно, если вы хотите отсроченное выполнение или хотите, чтобы техника применялась к другим типам последовательностей, используйте технику Джастина Нисснера. Одно из преимуществ его техники заключается в том, что он не взорвется, если будет слишком мало элементов для представления диапазона.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...