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.
Попробуйте сами
В этом уроке нет задания по программированию.
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Логика и управление потоком
1Multi-dimensional Arrays
2D Arrays BasicsDeclaring and Initializing 2DAccessing 2D Array ElementsNested Loops with 2D ArraysJagged ArraysCommon Matrix OperationsRecap - Multi-dimensional4Flow Control Techniques
Early ReturnsGuard ClausesJump Statements (goto)Break and ContinueFlatten Nested Conditionals7Logical Operators Advanced
Short-Circuit EvaluationConditional Logical OperatorsOperator PrecedenceRecap - Advanced Operators2Advanced Decision Making
Multiple ConditionsComplex Boolean LogicIf vs. Switch ComparisonNested Switch StatementsRecap - Advanced Decisions5Exception Handling
Try-Catch BasicsException TypesMultiple Catch BlocksWorking with FilesFinally BlockUsing vs. Try-FinallyCustom ExceptionsRecap - Error Handling3Loop Enhancements
Loop PerformanceIterating ComplexEach Loop TypeRefactoring LoopsRecap - Optimized Loops6Null Handling
Null Reference BasicsNullable Value TypesNull Checking PatternsDefensive ProgrammingRecap - Null Safety