Оптимизация LINQ C #

Каким будет правильный способ оптимизации следующих типов операторов:

IEnumerable<T> sequence = BuildSequence();
// 'BuildSequence' makes some tough actions and uses 'yield return'
// to form the resulting sequence.

Теперь, если я хочу взять только некоторые из первых элементов, я мог бы использовать что-то вроде:

sequence.Take(5);

Итак, если моя последовательность из BuildSequence на самом деле содержит несколько тысяч элементов, я, очевидно, не хочу, чтобы все они были построены, потому что мне нужно было бы только 5 из них.

Имеет ] LINQ оптимизировать такие операции, иначе мне пришлось бы что-то изобрести самому?

6
задан Yippie-Ki-Yay 5 April 2011 в 13:12
поделиться