C# Многомерные массивы
C# поддерживает многомерные массивы. Многомерные массивы также называют прямоугольными массивами.
Вы можете объявить двумерный массив переменных типа string следующим образом:
string [,] names;
Кроме того, можно объявить трёхмерный массив переменных типа int следующим образом:
int [ , , ] m;
Двумерный массив
Простейшей формой многомерного массива является двумерный массив. Двумерный массив по сути представляет собой список одномерных массивов.
Двумерный массив можно представить как таблицу с x строками и y столбцами. Ниже приведён двумерный массив с 3 строками и 4 столбцами:
Следовательно, каждый элемент массива идентифицируется именем элемента вида a[i, j], где a — имя массива, а i и j — индексы, которые однозначно идентифицируют каждый элемент в a.
Инициализация двумерного массива
Многомерные массивы можно инициализировать, указав значения для каждой строки в квадратных скобках. Ниже приведён массив с 3 строками и 4 столбцами.
int [,] a = new int [3,4] {
{0, 1, 2, 3} , /* 初始化索引号为 0 的行 */
{4, 5, 6, 7} , /* 初始化索引号为 1 的行 */
{8, 9, 10, 11} /* 初始化索引号为 2 的行 */
};
Доступ к элементам двумерного массива
Доступ к элементам двумерного массива осуществляется с помощью индексов, а именно индекса строки и индекса столбца массива. Например:
int val = a[2,3];
Приведённая выше инструкция извлечёт элемент в 3-й строке и 4-м столбце массива. Вы можете проверить это с помощью диаграммы выше. Давайте рассмотрим следующую программу, в которой мы будем использовать вложенные циклы для обработки двумерного массива:
Пример
namespace ArrayApplication
{
class MyArray
{
static void Main(string[] args)
{
/* Массив с 5 строками и 2 столбцами */
int[,] a = new int[5, 2] {{0,0}, {1,2}, {2,4}, {3,6}, {4,8} };
int i, j;
/* Вывести значение каждого элемента массива */
for (i = 0; i < 5; i++)
{
for (j = 0; j < 2; j++)
{
Console.WriteLine("a[{0},{1}] = {2}", i, j, a[i,j]);
}
}
Console.ReadKey();
}
}
}
Когда приведённый выше код компилируется и выполняется, он выдаёт следующий результат:
a[0,0]: 0 a[0,1]: 0 a[1,0]: 1 a[1,1]: 2 a[2,0]: 2 a[2,1]: 4 a[3,0]: 3 a[3,1]: 6 a[4,0]: 4 a[4,1]: 8Другие расширения