Menu
Coddy logo textTech

Declaring and Initializing 2D

Часть раздела Логика и управление потоком путешествия по C# на Coddy — урок 2 из 66.

Двумерный массив в C# можно создать с помощью рваных массивов, которые являются массивами массивов, позволяя хранить данные в сеткообразной структуре.

Чтобы создать иззубрённый массив целых чисел с 3 строками и 4 столбцами:

int[][] grid = new int[3][];
grid[0] = new int[4];
grid[1] = new int[4];
grid[2] = new int[4];

Вышеприведённый код создаёт двумерный массив, который выглядит так (все элементы инициализированы 0):

[0, 0, 0, 0]
[0, 0, 0, 0]
[0, 0, 0, 0]

Инициализируйте зубчатый массив значениями:

int[][] matrix = new int[2][];
matrix[0] = new int[] {1, 2, 3};
matrix[1] = new int[] {4, 5, 6};

Это создает двумерный массив с 2 строками и 3 столбцами, содержащий значения:

[1, 2, 3]
[4, 5, 6]

Чтобы получить количество строк и столбцов:

int rows = matrix.Length;           // Returns 2
int columns = matrix[0].Length;     // Returns 3 (for the first row)

Доступ к элементам в двумерном массиве требует двух индексов: одного для строки и одного для столбца.

Присвойте значение конкретной позиции (строка 1, столбец 2):

grid[1][2] = 42;

Прочитать значение из конкретной позиции (строка 0, столбец 3):

int value = grid[0][3];

Помните, что индексы массивов начинаются с 0, поэтому допустимые диапазоны следующие:

  • Строки: 0 до 2 (для массива с 3 строками)
  • Столбцы: 0 до 3 (для массива с 4 столбцами)

Если вы попытаетесь обратиться к элементу за пределами этих диапазонов (например, grid[3][2]), вы получите IndexOutOfRangeException.

Шпаргалка

Создайте рваный массив (двумерный массив) в C#:

int[][] grid = new int[3][];
grid[0] = new int[4];
grid[1] = new int[4];
grid[2] = new int[4];

Инициализация значениями:

int[][] matrix = new int[2][];
matrix[0] = new int[] {1, 2, 3};
matrix[1] = new int[] {4, 5, 6};

Получение размеров:

int rows = matrix.Length;           // Количество строк
int columns = matrix[0].Length;     // Количество столбцов в первой строке

Доступ к элементам с использованием двух индексов [строка][столбец]:

grid[1][2] = 42;        // Assign value
int value = grid[0][3]; // Read value

Индексы массива начинаются с 0. Доступ к индексам вне диапазона вызывает IndexOutOfRangeException.

Попробуйте сами

В этом уроке нет задания по программированию.

quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Логика и управление потоком