Храните запросы в ленивой форме, пока не начнете оценивать запрос несколько раз, или даже раньше, если они вам понадобятся в другой форме или . Вы рискуете получить переменные, захваченные в замыканиях, которые изменят свои значения.1003 *
Возможно, вы захотите оценить , когда запрос содержит сложные проекции, которые вы хотите избежать многократного выполнения (например, построение сложных объектов для последовательностей с большим количеством элементов).В этом случае оценка один раз и многократная итерация намного разумнее.
Вам могут понадобиться результаты в другой форме , если вы хотите вернуть их или передать их другому API, который ожидает определенный типof collection.
Возможно, вы захотите или должны запретить доступ к измененным замыканиям , если запрос захватывает переменные, которые не являются локальными в области.Пока запрос на самом деле не оценен, вы рискуете, что другой код изменит свои значения «за вашей спиной»;когда происходит оценка, он будет использовать эти значения вместо тех, которые присутствовали при создании запроса. (Однако это можно обойти, скопировав эти значения в другую переменную, имеющую локальную область видимости).