Перейти к содержимому
IMOEX 2144.97 1.0%

#итераторы

·Технологии

Ленивый LINQ: разбираем yield и ленивые вычисления по кирпичикам. Часть 2

В первой части мы успешно вскрыли чёрный ящик LINQ: написали Where вручную, разобрались, как компилятор превращает yield return в конечные автоматы, и посмотрели на методы с частичной буферизацией. Но LINQ был бы не собой, если бы на этом всё закончилось. Во второй части переходим к «тяжёлой артиллерии» — OrderBy, GroupBy и Join. Эти методы вынуждены нарушить главный завет ленивых вычислений: они материализуют данные в памяти, прежде чем отдать хоть один элемент. Но как именно? После этой статьи

#итераторы — Long/Short