← Все вопросы

Как создать и перебрать двумерный массив в C#?

Задан 13 месяцев назад1.5к просмотров2 ответа
6

Нужно хранить таблицу чисел — что-то вроде матрицы 3 на 3. Как объявить двумерный массив в C#, заполнить его и потом вывести все элементы? Видел синтаксис с запятой [,], но не понял, как с ним работать.

2 ответа

12
✓ Принятый ответ — помог автору

Двумерный массив объявляется через запятую в квадратных скобках [,]:

int[,] matrix = new int[3, 3]; // 3 строки, 3 столбца
matrix[0, 0] = 1;
matrix[1, 2] = 9;

Можно сразу инициализировать значениями:

int[,] table =
{
    { 1, 2, 3 },
    { 4, 5, 6 },
    { 7, 8, 9 }
};

Чтобы пройтись по всем элементам, нужны два вложенных цикла. Размеры узнаём через GetLength:

for (int i = 0; i < table.GetLength(0); i++)      // строки
{
    for (int j = 0; j < table.GetLength(1); j++)  // столбцы
        Console.Write(table[i, j] + " ");
    Console.WriteLine();
}

Важно: table.Length вернёт общее число элементов (9), а не количество строк. Для размерностей используйте GetLength(0) и GetLength(1).

5

Стоит знать, что в C# есть два разных «двумерных массива»:

  1. Прямоугольный int[,] — таблица фиксированной формы (как выше).
  2. Зубчатый (jagged) int[][] — массив массивов, строки могут быть разной длины:
int[][] jagged = new int[3][];
jagged[0] = new int[] { 1, 2 };
jagged[1] = new int[] { 3, 4, 5 };
jagged[2] = new int[] { 6 };

foreach (var row in jagged)
    Console.WriteLine(string.Join(" ", row));

Для матриц обычно берут [,], а jagged — когда строки реально разной длины.

Ваш ответ

Войдите, чтобы ответить на вопрос.
Поддержать проект