← Все вопросы
Как создать и перебрать двумерный массив в C#?
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# есть два разных «двумерных массива»:
- Прямоугольный
int[,]— таблица фиксированной формы (как выше). - Зубчатый (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 — когда строки реально разной длины.
Ваш ответ
Войдите, чтобы ответить на вопрос.