Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Доступ к элементам массива




Массивы и кортежи

Простые массивы

Многомерные массивы

Зубчатые массивы

Класс Array

Массивы в качестве параметров

Перечисления

Кортежи

Структурное сравнение

 

 

Для работы с множеством объектов одного и того же типа можно использовать коллек­ции (см. раздел 6.10) и массивы. В C# предусмотрена специальная нотация для объявления и использования массивов. Здесь “за кулисами” вступает в действие класс Array, предос­тавляющий несколько методов для сортировки и фильтрации-элементов внутри массива. С помощью перечислителя (enumerator) можно выполнить итерацию по всем элементам массива. Кроме того, в.NET 4 появился новый тип Tuple (кортеж), который может ис­пользоваться для комбинации множества объектов разного типа (см. подраздел “Кортежи” далее в этом разделе).

Простые массивы

При работе с множеством объектов одного и того же типа можно использовать массив. Массив - это структура данных, содержащая множество элементов одного и того же типа.

Объявление массива

Массив объявляется определением типа элементов, содержащихся в нем, за которым следуют квадратные скобки и имя переменной; например, массив, содержащий целочис­ленные элементы, объявляется так:

int[] myArray;

Инициализация массива

После объявления массива должна быть выделена память для хранения всех его элемен­тов. Массив является ссылочным типом, поэтому память для него должна распределяться в куче. Это делается инициализацией переменной массива с помощью операции new с указа­нием типа и количества элементов в массиве. Вот как специфицируется размер массива:

myArray = new int [ 4 ];

После такого объявления и инициализации переменная myArray ссылается на четыре целочисленных значения, распределенные в управляемой куче (рис. 6.1).

После изначальной спецификации размер массива не может быть изменен без копирования всех элементов. Если заранее не известно, сколько элементов долж­но содержаться в массиве, следует использовать коллекцию. Коллекции рассмат­риваются в разделе 6.10.

 

 

Рисунок 6.1 - Переменная myArray ссылается на четыре целочисленных значения в управляемой куче

 

Объявлять и инициализировать массив можно также в одной строке, а не в нескольких: int[] myArray = new int[4];

Присвоить значения каждому элементу массива, можно с помощью инициализатора массива. Инициализаторы массивов могут использоваться прямо в объявлении перемен­ной массива, а не после того, как массив объявлен:

int [] myArray = new int[4] {4, 7, 11, 2 };

Если вы инициализируете массив, применяя фигурные скобки, то размер массива мож­но не указывать, поскольку компилятор определит его самостоятельно:

int[] myArray = new int[] {4, 7, 11, 2};

При использовании компилятора C# существует еще более короткая форма. Написать объявление и инициализацию массива можно с помощью фигурных скобок. Код, сгенери­рованный компилятором в следующем случае, будет таким же, как и в предыдущем:

int[] myArray = {4, 7, 11, 2};

Доступ к элементам массива

После того, как массив объявлен и инициализирован, к его элементам можно обра­щаться с использованием индексатора (indexer). Массивы поддерживают только целочис­ленные индексаторы.

Индексатору передается номер элемента для доступа к массиву. Индексатор всегда на­чинается со значения 0 для первого элемента. Самый больший номер, который можно передать индексатору, равен общему количеству элементов в массиве минус 1, поскольку нумерация начинается с нуля. В следующем примере массив myArray объявляется и ини­циализируется четырьмя целыми значениями. К элементам можно обращаться со значе­ниями индексатора 0, 1, 2 и 3.

int[] myArray = new int[] {4, 7, 11, 2};

int vl = myArray[0]; // читать первый элемент

int v2 = myArray[l]; // читать второй элемент

myArray [3] = 44; // изменить четвертый элемент

Если значению индексатора, не соответствует никакого элемента, генерирует­ся исключение типа IndexOutOfRangeException.

Чтобы узнать количество элементов в массиве, можно воспользоваться свойством Length, как показано в приведенном ниже операторе:

for (int i = 0; i < myArray.Length; i++)

{

Console.WriteLine(myArray[i]);

}

Вместо применения оператора for для прохождения по всем элементам массива мож­но также использовать оператор foreach:

foreach (int val in myArray)

{

Console.WriteLine(val);

}

Оператор foreach использует интерфейсы IEnumerable и IEnumerator, о которых речь пойдет дальше в этом разделе.





Поделиться с друзьями:


Дата добавления: 2017-02-25; Мы поможем в написании ваших работ!; просмотров: 367 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Жизнь - это то, что с тобой происходит, пока ты строишь планы. © Джон Леннон
==> читать все изречения...

2273 - | 2048 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.012 с.