Цикл 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();
}
}
0 коммент.:
Отправить комментарий