Использование свойства Length

В С# массивы реализованы как объекты, и это дает определенные преимущества при работе с массивами. Одно из них — возможность использования свойства Length. Каждый массив имеет ассоциированное с ним свойство Length, в котором содер­жится информация о максимальном количестве элементов массива (то есть в массиве (имеется в виду класс массива) определено поле, содержащее информацию о длине массива).

int[] sample = new int [10];

int val = sample.Length;

Цикл foreach

В С# появился цикл foreach, который позволяет перебирать коллекции. Коллекции – это группа объектов. В C# определены несколько типов коллекций, одним из которых является массив.

В цикле foreach удобно также перебирать объекты, поддерживающие перечисление, например, списки, словари и т.д.

Общий формат синтаксиса имеет вид:

foreach (type var_name in collection)

{

statements;

}

Здесь словосочетание typevar_name – это тип и имя итерационной переменной, которая будет принимать значения из коллекции при выполнении цикла foreach. Циклически обрабатываемая коллекция указывается словом collection.

Цикл работает в полном соответствии со своим названием - тело цикла выполняется для каждого элемента в контейнере. Тип идентификатора должен быть согласован с типом элементов, хранящихся в контейнере данных. Предполагается также, что элементы контейнера (массива, коллекции) упорядочены. На каждом шаге цикла идентификатор, задающий текущий элемент контейнера, получает значение очередного элемента в соответствии с порядком, установленным на элементах контейнера. С этим текущим элементом и выполняется тело цикла - выполняется столько раз, сколько элементов находится в контейнере. Цикл заканчивается, когда полностью перебраны все элементы контейнера.

Серьезным недостатком циклов foreach в языке C# является то, что цикл работает только на чтение, но не на запись элементов. Так что наполнять контейнер элементами приходится с помощью других операторов цикла.

В следующем примере в цикле foreach производится обработка массива.

int k;

int[] mas = new int[5];

for(k=0; k < 5; k++) mas[k]=k;

sum = 0;

foreach(int i in mas)

{

Console.Write( "Элемент массива = " + i);

sum += i;

}

То есть, обработка элементов массива с помощью цикла foreach производится в порядке возрастания их индексов.

С помощью цикла foreach можно также перебирать элементы многомерных массивов. При этом последовательно обрабатываются элементы от первого до последнего в каждой строке.

Очень удобно перебирать с помощью цикла foreach различные коллекции, например, список.

Класс List

Класс List призван для работы со списками. В классе List есть методы по добавлению, удалению, вставке элементов и прочее. Списки – это очень удобный инструмент для программирования. Списки применяются там, где количество элементов в коллекции изначально неизвестно. Списки выгодно отличаются от массивов тем, что по ходу выполнения программы их размер можно изменять в любую сторону.

Общий синтаксис по описанию и созданию списка следующий.

List<type> name = new List<type>();

Здесь type – один из возможных типов. Все элементы создаваемого списка будут иметь этот тип. Имя коллекции задает параметр name.

После своего создания список может быть пополнен элементами. Любой элемент может быть удален в любой момент и т.д.

Для добавления элементов в список в нем реализовано несколько методов:

Метод Описание
Add([элемент]) добавляет элемент в конец списка
AddRange([список элементов]) добавляет в конец списка элементы указанного списка
Insert([индекс],[элемент]) вставляет элемент на позицию соответствующую индексу, все элементы «правее» будут сдвинуты на одну позицию
InsertRange([индекс], [список элементов]) то же самое, только вставляется множество элементов

List<string> dinosaurs = new List<string>();

dinosaurs.Add("Tyrannosaurus");

dinosaurs.Add("Amargasaurus");

dinosaurs.Add("Mamenchisaurus");

Удаление элементов

Метод Описание
Remove([элемент]) удаляет первое вхождение указанного элемента из списка
RemoveRange([индекс], [количество]) удаляет указанное количество элементов, начиная с указанной позиции
RemoveAt([индекс]) удаляет элемент, который находится на указанной позиции
Clear() удаляет все элементы списка

Свойство Count соответствует свойству обычного массива – Length – количество элементов.

Метод Contains позволяет определить, входит ли указываемый в функции элемент в список.

Возвращаясь к циклу foreach. Определим список объектов Car. Тогда работать с его элементами с помощью данного типа цикла становится очень удобно.

List<Car> cars = new List<Car>();

Заполняем список машинами

foreach ( Car car in cars )

{

Наши рекомендации