Каким будет правильный способ оптимизации следующих типов операторов:
IEnumerable<T> sequence = BuildSequence();
// 'BuildSequence' makes some tough actions and uses 'yield return'
// to form the resulting sequence.
Теперь, если я хочу взять только некоторые из первых элементов, я мог бы использовать что-то вроде:
sequence.Take(5);
Итак, если моя последовательность из BuildSequence
на самом деле содержит несколько тысяч элементов, я, очевидно, не хочу, чтобы все они были построены, потому что мне нужно было бы только 5 из них.
Имеет ] LINQ
оптимизировать такие операции, иначе мне пришлось бы что-то изобрести самому?