Выбор ответа Junior Коллекции и LINQ спрашивают часто обновлено
Отложенное выполнение LINQ
Вопрос
Что выведет код?
var list = new List<int> { 1, 5, 7 };
var query = list.Where(x => x > 2);
list.Add(10);
Console.WriteLine(query.Count());
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: 3. Where не выполняется сразу: query это описание запроса.
Варианты ответа
203правильный ответ- Ошибка: коллекция изменена во время перечисления
Разбор
Where не выполняется сразу: query это описание запроса. Перечисление происходит в Count(), к этому моменту в списке уже 1, 5, 7, 10, и условию > 2 удовлетворяют три числа. Исключение об изменении коллекции было бы, если бы список меняли внутри foreach по нему, а здесь изменение до перечисления. Чтобы зафиксировать результат, вызывают ToList() сразу.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.