«YieldExceptionYield» (Решение)

Ответ

Exception не произойдёт.

Объяснение

Действительно, строка

var numbers = GetSmallNumbers();

только строит запрос, но не выполняет его. Строка

var evenNumbers = numbers.Select(n => n * 2);

также строит ещё один запрос без непосредственного выполнения. Отдельный интерес представляет последняя строка метода Main:

Console.WriteLine(evenNumbers.FirstOrDefault());

Данный вызов оценит получит только первый элемент запроса (одиночные вызовы MoveNext() и Current), дальнейшее получение элементов перечисления происходить не будет. Таким образом, код отработает без исключений.

Задача

Last updated