Skip to content

Як отримати індекс поточної ітерації циклу foreach [C#]

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Завантаження...

[ Полезный рекламный блок ]

Попробуйте свои силы в игре, где ваши навыки программирования на C# станут решающим фактором. Переходите по ссылке 🔰.


Для отримання індексу поточної ітерації циклу foreach можна скористатися кількома варіантами, розглянемо їх.

Foreach призначений для ітерації над колекціями, які реалізують IEnumerable. Для цього потрібно викликати GetEnumerator для колекції, який поверне Enumerator.

Перелічувач має метод і властивість:

  • MoveNext()
  • Current

Current повертає об’єкт, на якому наразі перебуває Enumerator, MoveNext оновлює Current до наступного об’єкта.

Концепція індексу чужа концепції перерахування і не може бути виконана.

Тому більшість колекцій можна обійти за допомогою індексатора і конструкції циклу for.

Я вважаю за краще використовувати цикл for у цій ситуації, ніж відстежувати індекс за допомогою локальної змінної, як у цьому прикладі:

Краще використовувати цикл for:

Так само, в C#7 з’явився гідний синтаксис для отримання індексу всередині циклу foreach (тобто кортежів). Для цього прикладу потрібно визначити власний метод розширення:

 

 

Published inВідповіді на запитання C#
Subscribe
Notify of
guest
0 комментариев
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x