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

## Ответ

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

## Объяснение

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

```csharp
var numbers = GetSmallNumbers();
```

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

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

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

```csharp
Console.WriteLine(evenNumbers.FirstOrDefault());
```

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

[Задача](https://andreyakinshin.gitbook.io/problembookdotnet/ru/linq/yieldexceptionyield-p)
