Основы C#. Урок 6. Массивы в C#
Массивы в 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 три целых числа, а во второй - четыре. Часто это оказывается
очень к месту.
|