Yield позволяет создавать итераторы, возвращая элементы коллекции по одному, без загрузки всего в память сразу.
Как работает yield return
При
yield return код возвращает значение и сохраняет состояние для следующей итерации в foreach или LINQ. Компилятор генерирует класс, реализующий IEnumerable<T>, с MoveNext() для продолжения.Пример простого генератора четных чисел:
IEnumerable<int> EvenNumbers(int max) {
for (int i = 0; i <= max; i += 2) {
yield return i;
}
}foreach по нему выдаст
0, 2, 4... лениво, только при запросе.📍 Навигация: Вакансии • Задачи • Собесы
🐸Библиотека шарписта
#sharp_view