Отложенное выполнение LINQ-запросов означает, что операция не выполняется в точке кода, в котором объявлен запрос. learn.microsoft.com Она выполняется только после перечисления переменной запроса, например с помощью оператора foreach. learn.microsoft.com
Некоторые особенности отложенного выполнения:
- Результаты выполнения запроса зависят от содержимого источника данных при выполнении запроса, а не при определении запроса. learn.microsoft.com Если переменная запроса перечисляется несколько раз, результаты могут каждый раз отличаться. learn.microsoft.com
- Отложенное выполнение обеспечивает повторное использование запроса, так как запрос получает обновлённые данные из источника данных при каждом итерации результатов запроса. learn.microsoft.com
- Переменная запроса сама по себе не выполняет никаких действий и не возвращает никаких данных. metanit.com Она только хранит набор команд, которые необходимы для получения результатов. metanit.com
Отложенное выполнение характерно для всех стандартных операторов запроса, кроме операторов, возвращающих один элемент или скалярное значение, таких как First или Count. k0d.cc