C# Многомерные массивы

Массивы в C#

C# поддерживает многомерные массивы. Многомерные массивы также называют прямоугольными массивами.

Вы можете объявить двумерный массив переменных типа string следующим образом:

string [,] names;

Кроме того, можно объявить трёхмерный массив переменных типа int следующим образом:

int [ , , ] m;

Двумерный массив

Простейшей формой многомерного массива является двумерный массив. Двумерный массив по сути представляет собой список одномерных массивов.

Двумерный массив можно представить как таблицу с x строками и y столбцами. Ниже приведён двумерный массив с 3 строками и 4 столбцами:

C# 中的二维数组

Следовательно, каждый элемент массива идентифицируется именем элемента вида 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-м столбце массива. Вы можете проверить это с помощью диаграммы выше. Давайте рассмотрим следующую программу, в которой мы будем использовать вложенные циклы для обработки двумерного массива:

Пример

using System;

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

Массивы в C#

Другие расширения