С# цикл foreach
Цикл foreach C#
В этой статье мы узнаем о циклах foreach (альтернатива циклу for) и о том, как их использовать с массивами и коллекциями.
C# предоставляет простую в использовании и более удобочитаемую альтернативу циклу for, циклу foreach при работе с массивами и коллекциями для перебора элементов массивов/коллекций. Цикл foreach перебирает каждый элемент, поэтому он называется циклом foreach.
Прежде чем двигаться вперед с циклом foreach, посетите:
- C# для цикла
- Массивы C#
- Коллекции C#
Синтаксис цикла foreach
foreach (element in iterable-item) { // body of foreach loop }
Здесь iterable-item может быть массивом или классом коллекции.
<час>Как работает цикл foreach?
<рисунок> in
ключевое слово, используемое вместе с циклом foreach, используется для перебора iterable-item . Ключевое слово in выбирает элемент из итерируемого-элемента. на каждой итерации и сохранять в переменной element .
При первой итерации первый элемент iterable-item хранится в элементе. На второй итерации выбирается второй элемент и так далее.
Количество выполнений цикла 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);
}
}
}
}
Когда мы запустим обе программы, вывод будет:
H e l l o
В приведенной выше программе цикл 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);
}
}
}
Когда мы запустим программу, вывод будет таким:
Number of male = 6 Number of female = 4<час>
Пример 4:цикл foreach со списком (коллекцией)
Эта программа вычисляет сумму элементов в списке. .
using System;
using System.Collections.Generic;
namespace Loop {
class ForEachLoop {
public static void Main(string[] args) {
var numbers = new List<int>() { 5, -8, 3, 14, 9, 17, 0, 4 };
int sum = 0;
foreach (int number in numbers) {
sum += number;
}
Console.WriteLine("Sum = {0}", sum);
Console.ReadLine();
}
}
}
Когда мы запустим программу, вывод будет таким:
Sum = 44
В этой программе цикл foreach используется для обхода коллекции. Обход коллекции аналогичен просмотру массива.
Первый элемент коллекции выбирается на первой итерации, второй элемент — на второй и так далее до последнего элемента.
Язык C