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

Интерфейс IEnumerator

Интерфейс IEnumerator<T> задаёт методы MoveNext и свойство Current. Перечислитель получают из IEnumerable<T>.

Синтаксис

bool MoveNext(); T Current { get; }

Пример

Давайте пройдём список через IEnumerator:

using System; using System.Collections.Generic; class Program { static void Main() { List<int> nums = new List<int> {1, 2, 3, 4, 5}; IEnumerator<int> en = nums.GetEnumerator(); while (en.MoveNext()) { Console.Write(en.Current + " "); } } }

Результат выполнения кода:

1 2 3 4 5

Пример

Давайте прочитаем первый элемент после MoveNext:

using System; using System.Collections.Generic; class Program { static void Main() { List<int> nums = new List<int> {1, 2, 3, 4, 5}; IEnumerator<int> en = nums.GetEnumerator(); Console.WriteLine(en.MoveNext()); Console.WriteLine(en.Current); } }

Результат выполнения кода:

True 1

Пример

Давайте дойдём до конца перечисления:

using System; using System.Collections.Generic; class Program { static void Main() { List<int> nums = new List<int> {1, 2, 3}; IEnumerator<int> en = nums.GetEnumerator(); while (en.MoveNext()) { } Console.WriteLine(en.MoveNext()); } }

Результат выполнения кода:

False

Пример

Давайте обойдём строки:

using System; using System.Collections.Generic; class Program { static void Main() { List<string> items = new List<string> {"a", "b", "c", "d", "e"}; IEnumerator<string> en = items.GetEnumerator(); en.MoveNext(); Console.WriteLine(en.Current); } }

Результат выполнения кода:

"a"

Смотрите также

  • интерфейс IEnumerable,
    который выдаёт перечислитель
  • метод MoveNext,
    который переходит к следующему элементу
  • свойство Current,
    которое возвращает текущий элемент
  • метод ForEach,
    который обходит список без явного перечислителя
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить