Введение
Каждый C#-разработчик хотя бы раз писал что-то вроде:
var result = numbers.Where(x => x > 10).Select(x => x * 2).Take(5);
И почти каждый на старте карьеры удивлялся, узнав, что эта строчка ничего не вычисляет. Ни один элемент коллекции ещё не тронут, ни один предикат не вызван — вся цепочка спит. Вычисления начнутся только тогда, когда мы начнём перебирать result в foreach или вызовем .ToList().



