Цикл foreach

Цикл foreach предназначен для обработки массивов, коллекций и других контейнеров, рассчитанных на хранение множества данных. Контейнер должен исполнять интерфейсы System.Collections.IEnumerable и System.Collections.IEnumerator (подробнее об интерфейсах см. главу 12).

Оператор имеет такой синтаксис:

foreach (<Элемент> in <Контейнер>)

<Тело_цикла>;

Здесь foreach, in — зарезервированные слова; <Элемент> — очередной элемент данных; <Контейнер> — хранилище данных; <Тело_цикла> — произвольный оператор или блок операторов. Разумеется, тип элемента должен совпадать с типом данных в контейнере.

Оператор осуществляет последовательный перебор данных в контейнере и на каждой итерации возвращает очередной элемент в переменной <Элемент>. Замечу, что эта переменная в теле цикла доступна только для чтения, то есть с помощью цикла нельзя наполнить хранилище данных.

В листинге 7.3 (файл Ch07\ForeachDemo\Program.cs) создается массив на 100 целых чисел и в цикле for массив наполняется случайными целыми числами. Затем в цикле foreach подсчитывается сумма всех элементов массива и находятся минимальный и максимальный его элементы.

Листинг 7.3. Пример создания и обработки массива

using System;

class Class1

{

static void Main()

{

int [] arr = new int[100]; // Массив на 100 целых чисел

Random rnd = new Random(); // Случайное целое число

for (int i = 0; i < 100; i++) // Наполняем массив

arr[i] = rnd.Next();

long Sum = 0; // Сумма элементов

int Min = arr[0], Max = arr[0]; // Максимальный и минимальный

// элементы

foreach (int i in arr) // Цикл перебора элементов массива

{

Sum += i;

if (i > Max)

Max = i;

else if (i < Min)

Min = i;

}

Console.WriteLine("Sum = {0} Min = {1} Max = {2}", Sum, Min, Max);

Console.ReadLine();

}

}

Предлагаю ознакомиться с аналогичными статьями: