Цикл foreach

Новим виглядом циклу, який з'явився в C# і відсутній в C++, є цикл foreach. Він зручний при роботі з масивами, колекціями і іншими контейнерами даних. Синтаксис оператора виглядає таким чином:

foreach (тип ідентифікатор in контейнер) оператор

Тіло циклу виконується для кожного ідентифікатора в контейнері. Тип ідентифікатора повинен бути узгоджений з типом елементів, що зберігаються в контейнері. На кожному кроці циклу ідентифікатор, задаючий поточний елемент контейнера, набуває значення чергового елементу відповідно до порядку, встановленого на елементах контейнера. З використанням цього поточного елементу і виконується тіло циклу. Кількість кроків циклу рівна кількості елементів, що знаходяться в контейнері. Таким чином, цикл закінчується в той момент, коли були перебрані всі елементи контейнера.

Важливою особливістю цього циклу є те, що в тілі циклу елементи контейнера доступні тільки для читання. Тому заповнювати колекції з використанням циклу foreach не можна, необхідно користуватися іншими видами циклів.

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

public void SumMinMax(){ int[,] myArray = new int[10, 10]; Random rnd = new Random(); for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { myArray[i, j]= rnd.Next(100); Response.Write(myArray[i, j]+ " "); } Response.Write("<br/>"); } long sum = 0; int min = myArray[0, 0]; int max = myArray[0, 0]; foreach (int i in myArray) { sum += i; if (i > max) max = i; if (i < min) min = i; } Response.Write("Sum=" + sum.ToString() + " Min=" + min.ToString() + " Max=" + max.ToString());}

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: