Основные операторы языка c#
Состав и синтаксис
операторов C# унаследован от языка С++.
Тем не менее существует ряд отличий,
которые улучшают некоторые характеристики
C++, делая его более легким в использовании.
Предполагая, что читатель уже знаком с
основными операторами языка C++ и имеет
минимальный опыт программирования,
остановимся на рассмотрении только
наиболее значимых операторов C#, а также
операторов, специфических для данного
языка программирования.
Цикл 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());
}