Урок № 7. Первое знакомство с Массивами


Понятие массива в C#

Доброго времени суток! Настало время познакомиться с массивами! Массивы, как и «одиночные» переменные, в я зыке C# предназначены для хранения данных, только в «одиночной» переменной можно хранить всего одно значение, то в массивах можно хранить множество однотипных значений одновременно. Разберемся как это работает!

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

//Десять "одиночных" переменных
int value1 = 24;
int value2 = 21;
int value3 = 41;
int value4 = 44;
int value5 = 12;
int value6 = 24;
int value7 = 42;
int value8 = 35;
int value9 = 32;
int value10 = 11;

Десять переменных «вести» уже не очень удобно, а представляете, что этих переменных нужны сотни, или даже тысячи? Вот тут и приходят на помощь массивы, хранение десяти целочисленных значений в одном массиве будет выглядеть следующим образом:

//Массив из десяти элементов
int[] intArray = new int[10]; //10 – количество элементов в массиве

Именно так выглядит объявление (создание) массива из десяти элементов, т.е. аналога десяти «одиночных» переменных такого типа.

Теперь разберемся с тем, как же получить доступ к переменным, «скрытым» в нашем массиве, а все очень просто: для доступа к элементам массива, нужно знать его имя (название), в нашем случае – это «intArray» и номер (а точнее индекс) нужного элемента, только есть одна особенность, элементы массива нужно считать, начиная с нуля, т.е. первый элемент будет иметь индекс «0» а последний – количество элементов в массиве – 1. А на практике, это выглядит так:

//Доступ к первому элементу массива
intArray[0] = 24;

//Доступ к пятому элементу массива
intArray[4] = 12;

//Доступ к последнему элементу массива
intArray[9] = 12;

Как несложно догадаться, индекс элемента указывается в квадратных скобка, расположенных сразу после названия массива. А в приведенном выше примере, мы установили значение первому, пятому, и последнему элементам массива.

Доступ к элементам массива по индексу, может привести к путанице, например, в случае, когда указывается индекс «0», мы однозначно понимаем, что тут идет обращение к первому элементу массива, а вот в случае, когда мы обращались к последнему элементу массива, указывался индекс «9», что на самом деле однозначно не говорит, что это индекс последнего элемента (в месте обращения, к элементу по индексу «9», мы можем и не знать, что массив состоит из десяти элементов). По этой причине, мы можем при создании массива не «в лоб» указывать число «10», а использовать ранее подготовленную константу (т.е. подставлять имя константы) со значением 10 как показано ниже:

//Константа, обозначающая размер массива
const int SIZE = 10;

//Создание массива из десяти элементов
int[] intArray2 = new int[SIZE];

Тогда доступ к последнему элементу массива будет обозначаться так:

//Доступ к последнему элементу массива
intArray2[SIZE - 1] = 18;

Согласитесь, что так уже нагляднее, но не только нагляднее, но и практичнее, например, если мы захотим увеличить размер нашего массива, то нам нужно будет изменить только одно место – место объявления константы, примерно так:

//Константа, обозначающая размер массива
const int SIZE = 12;

И всё, остальной код будет работать исправно! Так что, использовать константы уже лучше, чем подставлять значения «в лоб». Но не в любом месте программного кода видно, какая константа использована в качестве размера конкретного массива.  К счастью, у массивов в C# есть замечательная особенность, каждый массив хранить не только значения своих элементов, но и дополнительную информацию, такую как количество элементов (т.е. свой размер). Таким образом, при обращении к элементу массива по индексу, можно использовать эту информацию, а делается это так:

/*
* Последнему элементу массива «intArray3»
* присваивается значение «40»
*/
intArray3[intArray3.Length - 1] = 40;

В данном примере, мы используем свойство массива «intArray3», которое называется «Length», свойства (в английской терминологии «properties») вызываются через «.» (точку), написанную после имени объекта (в нашем случае массива), к которому они относятся.

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

Перейти к следующему уроку