Как упоминалось в главе 5, в языке C# определен оператор цикла f oreach, но его рассмотрение было отложено до более подходящего момента. Теперь этот момент настал.

Оператор f oreach служит для циклического обращения к элементамколлекции, представляющей собой группу объектов. В C# определено несколько видов коллекций, каждая из которых является массивом. Ниже приведена общая форма оператора цикла foreach.

foreach(тип имя_переменной_циклаinколлекция) оператор;

Здесьтип имя_переменной_циклаобозначает тип и имя переменной управления циклом, которая получает значение следующего элемента коллекции на каждом шаге выполнения цикла foreach. Аколлекцияобозначает циклически опрашиваемую коллекцию, которая здесь и далее представляет собой массив. Следовательно,типпеременной цикла должен соответствовать типу элемента массива. Кроме того,типможет обозначаться ключевым словом var. В этом случае компилятор определяет тип переменной цикла, исходя из типа элемента массива. Это может оказаться полезным для работы с определенного рода запросами, как будет показано далее в данной книге. Но, как правило, тип указывается явным образом.

Оператор цикла foreach действует следующим образом. Когда цикл начинается, первый элемент массива выбирается и присваивается переменной цикла. На каждом последующем шаге итерации выбирается следующий элемент массива, который сохраняется в переменной цикла. Цикл завершается, когда все элементы массива окажутся выбранными. Следовательно, оператор foreach циклически опрашивает массив по отдельным его элементам от начала и до конца.

Следует, однако, иметь в виду, что переменная цикла в операторе foreach служит только для чтения. Это означает, что, присваивая этой переменной новое значение, нельзя изменить содержимое массива.

Ниже приведен простой пример применения оператора цикла foreach. В этом примере сначала создается целочисленный массив и задается ряд его первоначальных значений, а затем эти значения выводятся, а по ходу дела вычисляется их сумма.

// Использовать оператор цикла foreach.

using System;

class ForeachDemo { static void Main() {

int sum = 0;

int[] nums = new int [10];

// Задать первоначальные значения элементов массива nums. for(int i = 0; i < 10; i++) nums[i] = i;

// Использовать цикл foreach для вывода значений // элементов массива и подсчета их суммы, foreach(int х in nums) {

Console.WriteLine("Значение элемента равно: " + х); sum += х;

}

Console.WriteLine("Сумма равна: " + sum);

}

}

Выполнение приведенного выше кода дает следующий результат.

Значение

Перейти на страницу:

Похожие книги