Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
⊗csSpGvCuS 74 of 509 menu
◀ ▶

Собственная последовательность в C#

Метод с yield return становится генератором: он не строит всю коллекцию сразу, а возвращает элементы по одному, когда перечислитель запрашивает MoveNext.

Состояние цикла (индекс, предыдущие значения) компилятор прячет в сгенерированный класс - достаточно описать правило следующего элемента.

Генератор Fibonacci не хранит весь ряд. На каждом шаге он отдаёт текущее число и запоминает два предыдущих для следующего запроса. При count 0 цикл не выполняется, и метод ничего не отдаёт:

static IEnumerable<int> Fib(int count) { int a = 0, b = 1; for (int i = 0; i < count; i++) { yield return a; (a, b) = (b, a + b); } } Console.WriteLine(string.Join(", ", Fib(5))); // выведет 0, 1, 1, 2, 3

Верните три названия городов по одному при каждом шаге обхода.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить