Как получить индекс текущей итерации цикла foreach?

foreach предназначен для перебора enhanced-for-loop коллекций, реализующих IEnumerable. Он foreach делает это, вызывая GetEnumerator для c-sharp коллекции, которая возвращает c-sharp Enumerator.

Этот перечислитель имеет c-sharp метод и свойство:

  • MoveNext()
  • Current

Current возвращает c#.net объект, на котором Enumerator foreach-loop в данный момент находится, MoveNext обновляет c# Current на следующий объект.

Концепция foreach индекса чужда концепции перечисления c#.net и не может быть реализована.

Из-за visual-c# этого большинство коллекций foreach можно просматривать с помощью c#.net индексатора и конструкции c# цикла for.

В этой ситуации foreach я предпочитаю использовать visual-c# цикл for, а не отслеживать .cs-file индекс с помощью локальной c-sharp переменной.

c#

foreach

2022-11-21T20:11:38+00:00