Skip to content

Як працює Foreach у C#

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Завантаження...

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

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


Цикл foreach у C# використовується для ітерації через елементи колекції (наприклад, масиву, списку, словника тощо) без явного використання індексів або ітераторів. Він забезпечує більш зручний спосіб роботи з елементами колекції, який читається.

Синтаксис циклу foreach має такий вигляд:

Тут collection – це колекція (масив, список тощо), а item – тимчасова змінна, яка приймає значення кожного елемента колекції на кожній ітерації.

Принцип роботи

Цикл foreach у C# є синтаксичним цукром, тобто він надає зручніший спосіб роботи з елементами колекції, приховуючи деталі роботи нижчого ітераційного процесу.

1) Перш ніж почати виконання циклу, відбувається перевірка, чи є колекція (collection) null. Якщо це так, цикл не буде виконуватися.

2) Цикл foreach використовує інтерфейс IEnumerable або IEnumerable<T> (залежно від типу колекції), щоб отримати ітератор, який буде проходити по елементах колекції. Цей ітератор має метод GetEnumerator(), який повертає об’єкт, що реалізує інтерфейс IEnumerator або IEnumerator<T>.

3) При початку циклу ітератор викликає метод MoveNext(), щоб перейти до першого елемента колекції.

4) Після переходу до чергового елемента колекції, ітератор використовує властивість Current (або метод Current у випадку IEnumerator) для отримання поточного елемента. Це значення буде передано в змінну (item), використовувану всередині блоку foreach.

5) Виконується код, що знаходиться всередині блоку foreach. Цей код буде виконуватися для кожного елемента колекції.

6) Після завершення виконання блоку коду ітератор викликає знову метод MoveNext(), щоб перейти до наступного елемента колекції.

7) Цей процес (кроки 4-6) триватиме доти, доки метод MoveNext() не поверне false, вказуючи на те, що всі елементи колекції були оброблені. Після цього цикл завершиться.

8) Після завершення циклу, ітератор може звільняти будь-які ресурси або обробляти завершальні операції (наприклад, закриття файлу або звільнення пам’яті).

Приклади використання

Використання циклу foreach для масиву:

Використання циклу foreach для списку:

Цикл foreach автоматично пройде через усі елементи колекції, починаючи з першого і закінчуючи останнім. Зверніть увагу, що всередині блоку циклу foreach змінну item (або будь-яке інше ім’я змінної, яке ви виберете) не можна змінити, оскільки це тільки копія елемента, а не посилання на нього.

Цикл foreach особливо корисний, коли вам необхідно перебрати всі елементи колекції та виконати деяку операцію для кожного з них без необхідності керування індексами або станом ітератора.

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