> For the complete documentation index, see [llms.txt](https://andreyakinshin.gitbook.io/problembookdotnet/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://andreyakinshin.gitbook.io/problembookdotnet/ru/linq/yieldexceptionyield-s.md).

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

## Ответ

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

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

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

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

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

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

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

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

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

[Задача](/problembookdotnet/ru/linq/yieldexceptionyield-p.md)
