не буду этого делать, как объясняет Джон Скит. Поскольку массив (как в вашем примере) не генерирует исключения во время итерации, нет причин, которые нельзя оптимизировать.
var res = new int[1000000].Skip(999999).First();
бы здорово, если бы этот запрос просто использовал индексатор, а не проходил 999999 записей.
Я заглянул в System.Core.dll и заметил, что в отличие отSkip()
,Count()
метод расширения оптимизирован. ЕслиIEnumerable
инвентарьICollection
тогда он просто вызываетCount
свойство.