Объявление и инициализация 2D-массивов
Часть раздела Логика и управление потоком путешествия по C# на Coddy. Урок 2 из 66.
Двумерный массив в C# можно создать с помощью зубчатых массивов — массивов массивов, которые позволяют хранить data в структуре, похожей на grid.
Чтобы создать ступенчатый массив целых чисел с 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; // Возвращает 2
int columns = matrix[0].Length; // Возвращает 3 (для первой строки)Для доступа к элементам двумерного массива требуются два индекса: один для строки и один для столбца.
Присвойте значение определённой позиции (строка 1, столбец 2):
grid[1][2] = 42;Считайте значение из определённой позиции (строка 0, столбец 3):
int value = grid[0][3];Помни, что индексы массива начинаются с 0, поэтому допустимые диапазоны следующие:
- rows: от 0 до 2 (для массива с 3 строками)
- columns: от 0 до 3 (для массива с 4 столбцами)
Если вы попытаетесь обратиться к элементу за пределами этих диапазонов (например, grid[3][2]), вы получите IndexOutOfRangeException.
Попробуйте сами
В этом уроке нет задания по программированию.
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Логика и управление потоком
1Многомерные массивы
Основы 2D-массивовОбъявление и инициализация 2D-массивовДоступ к элементам 2D-массиваВложенные циклы с 2D-массивамиЗубчатые массивыОсновные операции с матрицамиПовторение — многомерные массивы4Методы управления потоком выполнения
Досрочный выходЗащитные условияОператоры перехода (goto)Break и ContinueУпрощение вложенных условных конструкций7Логические операторы: продвинутый уровень
Вычисление с коротким замыканиемУсловные логические операторыПриоритет операторовПовторение — продвинутые операторы2Продвинутое принятие решений
Множественные условияСложная логика BooleanСравнение If и SwitchВложенные конструкции SwitchПовторение — продвинутые решения5Обработка исключений
Основы Try-CatchТипы исключенийНесколько блоков CatchРабота с файламиБлок FinallyИспользование Using вместо Try-FinallyПользовательские исключенияПовторение — обработка ошибок3Улучшение циклов
Производительность цикловИтерация по сложным структурамКаждый тип циклаРефакторинг цикловПовторение — оптимизированные циклы6Обработка null
Основы ссылок на nullТипы значений, допускающие nullШаблоны проверки на nullЗащитное программированиеПовторение — безопасность при работе с nullПотренируйтесь самостоятельно: Онлайн-компилятор C#