Программисты.kz > Уроки C# > Урок 6. Массивы в C#

Урок 6. Массивы в C#


15-10-2009, 14:40. Разместил: КазКиберГетик

Массивы в C# несколько отличаются от других C-подобных языков. Начнем сразу с примеров. Пример первый:

...
int[] k; //k - массив
k=new int [3]; //Определяем массив из 3-х целых
k[0]=-5; k[1]=4; k[2]=55; //Задаем элементы массива
//Выводим третий элемент массива
Console.WriteLine(k[2].ToString());
...

 

Смысл приведенного фрагмента ясен из комментариев. Обратите внимание на некоторые особенности. Во-первых, массив определяется именно как

 
int[] k;

а не как один из следующих вариантов:

int k[]; //Неверно!
int k[3]; //Неверно!
int[3] k; //Неверно!

Во-вторых, так как массив представляет из себя ссылочный объект, то для создания массива необходима строка

k=new int [3];

Именно в ней мы и определяем размер массива. Хотя, вообще говоря, возможны конструкции вида

 

int[] k = new int [3];

Элементы массива можно задавать сразу при объявлении. Вот пример:

int[] k = {-5, 4, 55};

Разумеется, приведенные конструкции применимы не только к типу int и не только к массиву размера 3.

В C#, как и в C/C++, нумерация элементов массива идет с нуля. Таким образом в нашем примере начальный элемент массива – это k[0], а последний – k[2]. Элемента k[3], разумеется, нет.

Теперь переходим к многомерным массивам. Вот так задается двумерный массив:

int[,] k = new int [2,3];

Обратите внимение, что пара квадратных скобок только одна. Естественно, что в нашем примере у массива 6 (=2*3) элементов (k[0,0] – первый, k[1,2] – последний).

Аналогично мы можем задавать многомерные массивы. Вот пример трехмерного массива:

int[,,] k = new int [10,10,10];

А вот так можно сразу инициализировать многомерные массивы:

int[,] k = {{2,-2},{3,-22},{0,4}};

Приведенные выше примеры многомерных массивов называются прямоугольными. Если их представить в виде таблицы (в двумерном случае), то массив будет представлять из себя прямоугольник.

Наряду с прямоугольными массивами существуют так называемые ступенчатые. Вот пример:

 
//Объявляем 2-мерный ступенчатый массив
int[][] k = new int [2][];
//Объявляем 0-й элемент нашего ступенчатого массива
//Это опять массив и в нем 3 элемента
k[0]=new int[3];
//Объявляем 1-й элемент нашего ступенчатого массива
//Это опять массив и в нем 4 элемента
k[1]=new int[4];
k[1][3]=22; //записываем 22 в последний элемент массива
...

Обратите внимание, что у ступенчатых массивов мы задаем несколько пар квадратных скобок (столько, сколько размерность у массива). И точно так же мы что-нибудь делаем с элементами массива – записываем, читаем и т. п.

Самая важная и интересная возможность у ступенчатых массивов – это их “непрямоугольность”. Так, в приведенном выше примере в первой “строке” массива k три целых числа, а во второй – четыре. Часто это оказывается очень к месту.


Вернуться назад