Поскольку вам требуется немедленное выполнение (вы хотите загрузить результаты в список), нет необходимости использовать LINQ здесь; Вы можете использовать метод экземпляра GetRange
на List<T>
:
List<MyObject> myRange = allItems.GetRange(from, to - from + 1);
Конечно, если вы хотите отсроченное выполнение или хотите, чтобы техника применялась к другим типам последовательностей, используйте технику Джастина Нисснера. Одно из преимуществ его техники заключается в том, что он не взорвется, если будет слишком мало элементов для представления диапазона.