Ответьте честно и, если изучали LINQ, разберите конкретный оператор: как он перечисляет источник, когда выполняется и какую память использует. Не все LINQ-методы устроены одинаково.
Заглядывали ли вы в реализацию LINQ-методов и понимаете ли, как они устроены?
Ответьте честно и, если изучали LINQ, разберите конкретный оператор: как он перечисляет источник, когда выполняется и какую память использует. Не все LINQ-методы устроены одинаково.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Ответьте честно и, если изучали LINQ, разберите конкретный оператор: как он перечисляет источник, когда выполняется и какую память использует. Не все LINQ-методы устроены одинаково.
Where и Select обычно выполняются лениво и могут обрабатывать элементы по одному. OrderBy требует накопить элементы для сортировки, а Any способен завершить поиск при первом совпадении. Провайдер IQueryable отдельно строит и исполняет дерево запроса.
Хороший пример из опыта — найденное повторное перечисление, лишняя материализация или неподходящая операция в запросе БД. Реализации и оптимизации меняются между версиями, поэтому детали стоит привязывать к конкретному runtime.