Почему не оптимизирован Skip () в LINQ для объектов?

var res = new int[1000000].Skip(999999).First();

Было бы здорово, если бы этот запрос просто использовал индексатор вместо обхода 999999 записей.

Я заглянул в System.Core. dll и заметил, что в отличие от Skip () , метод расширения Count () оптимизирован. Если IEnumerable реализует ICollection , то он просто вызывает свойство Count .

5
задан Michael Petrotta 5 June 2011 в 19:08
поделиться