В этой статье мы узнаем о циклах foreach (альтернативе циклу for) и о том, как использовать их с массивами и коллекциями.
C # предоставляет простую в использовании и более читаемую альтернативу циклу for, цикл foreach при работе с массивами и коллекциями для перебора элементов массивов / коллекций. Цикл foreach выполняет итерацию по каждому элементу, поэтому называется циклом foreach.
Прежде чем двигаться дальше с циклом foreach, посетите:
- C # для цикла
- Массивы C #
- Коллекции C #
Синтаксис цикла foreach
foreach (element in iterable-item) (// тело цикла foreach)
Здесь итеративный элемент может быть массивом или классом коллекции.
Как работает цикл foreach?
in
Ключевое слово , используемое вместе с петлей Еогеасп используется для итерации по Iterable-элемента. Ключевое слово in выбирает элемент из повторяемого элемента на каждой итерации и сохраняет его в переменном элементе.
На первой итерации первый элемент итеративного элемента сохраняется в element. На второй итерации выбирается второй элемент и так далее.
Количество раз, которое будет выполняться цикл foreach, равно количеству элементов в массиве или коллекции.
Вот пример итерации по массиву с использованием цикла for:
Пример 1: Печать массива с использованием цикла for
using System; namespace Loop ( class ForLoop ( public static void Main(string() args) ( char() myArray = ('H','e','l','l','o'); for(int i = 0; i < myArray.Length; i++) ( Console.WriteLine(myArray(i)); ) ) ) )
Эту же задачу можно выполнить с помощью цикла foreach.
Пример 2: Печать массива с использованием цикла foreach
using System; namespace Loop ( class ForEachLoop ( public static void Main(string() args) ( char() myArray = ('H','e','l','l','o'); foreach(char ch in myArray) ( Console.WriteLine(ch); ) ) ) )
Когда мы запустим обе программы, вывод будет:
Здравствуйте
В приведенной выше программе цикл foreach выполняет итерацию по массиву myArray. На первой итерации выбирается первый элемент, т.е. myArray (0), который сохраняется в ch.
Аналогично на последней итерации выбирается последний элемент, то есть myArray (4). Внутри тела цикла печатается значение ch.
Когда мы смотрим на обе программы, программа, использующая цикл foreach, более читабельна и проста для понимания. Это из-за его простого и выразительного синтаксиса.
Следовательно, цикл foreach предпочтительнее цикла for при работе с массивами и коллекциями.
Пример 3: обход массива пола с помощью цикла foreach
Эта программа подсчитывает количество кандидатов мужского и женского пола.
using System; namespace Loop ( class ForEachLoop ( public static void Main(string() args) ( char() gender = ('m','f','m','m','m','f','f','m','m','f'); int male = 0, female = 0; foreach (char g in gender) ( if (g == 'm') male++; else if (g =='f') female++; ) Console.WriteLine("Number of male = (0)", male); Console.WriteLine("Number of female = (0)", female); ) ) )
Когда мы запустим программу, вывод будет:
Количество мужчин = 6 Количество женщин = 4
Пример 4: цикл foreach с List (Collection)
Эта программа вычисляет сумму элементов в списке.
using System; using System.Collections.Generic; namespace Loop ( class ForEachLoop ( public static void Main(string() args) ( var numbers = new List() (5,-8,3,14,9,17,0,4); int sum = 0; foreach(int number in numbers) ( sum += number; ) Console.WriteLine("Sum = (0)", sum); ) ) )
Когда мы запустим программу, вывод будет:
Сумма = 44
В этой программе цикл foreach используется для обхода коллекции. Обход коллекции похож на обход массива.
Первый элемент коллекции выбирается на первой итерации, второй элемент - на второй и так далее до последнего элемента.