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

Метод MoveNext

Метод MoveNext интерфейса IEnumerator<T> переходит к следующему элементу. Возвращает true, если элемент есть, и false после последнего.

Синтаксис

bool hasNext = enumerator.MoveNext();

Пример

Давайте вызовем 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(); int n = 0; while (en.MoveNext()) n++; Console.WriteLine(n); } }

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

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()); } }

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

True

Пример

Давайте получим False после конца:

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

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

False

Пример

Давайте для пустого списка сразу получим False:

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

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

False

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

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