Что означает yield return?

yield return выдаёт очередной элемент из итератора и приостанавливает его выполнение до следующего запроса элемента. Это позволяет обходить последовательность без её предварительного накопления целиком.

Короткий ответ

Что ответить на собеседовании

yield return выдаёт очередной элемент из итератора и приостанавливает его выполнение до следующего запроса элемента. Это позволяет обходить последовательность без её предварительного накопления целиком.

Подробный разбор

Ответ с пояснениями

yield return выдаёт очередной элемент из итератора и приостанавливает его выполнение до следующего запроса элемента. Это позволяет обходить последовательность без её предварительного накопления целиком.

IEnumerable<int> Squares(int count)
{
    for (int i = 0; i < count; i++)
        yield return i * i;
}

Для небольшого count цикл вычисляет квадраты по мере foreach. Компилятор создаёт машину состояний, сохраняющую позицию и локальные переменные; yield break завершает перечисление. Повторный обход может повторно выполнить вычисления и побочные эффекты. Обычный yield return не создаёт отдельный поток и не равен await.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее