Theory and Tasks for Students - Spring 2019
Многомерные массивы

Многомерные массивы создаются практически так же, как и одномерные, надо лишь указать эти дополнительные измерения: int[,] arr = new int[100, 200]; //двумерный массив размером 100 на 200 int[,,,] quad = new int[2, 2, 2, 2]; //массив с четырьмя измерениями размером 2x2x2x2 Для получения длины массива по одному из измерений теперь следует использовать метод GetLength(), указав в качестве аргумента номер измерения: int[,,] cube = new int[20, 30, 40]; int width = cube.GetLength(0); //20 int height = cube.GetLength(1); //30 int depth = cube.GetLength(2); //40 int total = cube.Length; //20 * 30 * 40 = 24000

Так же, как и с одномерными массивами, для работы с многомерными массивами целесообразно использовать цикл for: int[,] arr = new int[3, 5]; int counter = 0; for (int i = 0; i < arr.GetLength(0); i++) { for (int j = 0; j < arr.GetLength(1); j++) { arr[i, j] = counter; counter++; } } Этот блок кода заполнит массив следующим образом: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14

Так же, как и с одномерными массивами, вывод производится по-элементно: for (int i = 0; i < arr.GetLength(0); i++) { for (int j = 0; j < arr.GetLength(1); j++) { Console.Write(arr[i, j] + " "); //вывод элементов строки } Console.WriteLine(); //перевод стркои }

Чуть более сложный пример - заполнение двумерного массива "змейкой": 0 1 2 3 4 9 8 7 6 5 10 11 12 13 14 19 18 17 16 15 int[,] arr = new int[3, 5]; int counter = 0; for (int i = 0; i < arr.GetLength(0); i++) { for (int j = 0; j < arr.GetLength(1); j++) { if (i % 2 == 0) { arr[i, j] = counter; } else { arr[i, arr.GetLength(1) - 1 - j] = counter; } counter++; } }