Accessing 2D Array Elements
Часть раздела Логика и управление потоком путешествия по C# на Coddy — урок 3 из 66.
Доступ к элементам в двумерном массиве использует похожий синтаксис, как и для обычных массивов, но требует двух индексов: одного для строки и одного для столбца.
Примечание: В C# существуют два вида многомерных массивов: прямоугольные массивы (int[,]) и ступенчатые массивы (int[][]). Этот урок охватывает ступенчатые массивы, где каждая строка является своим собственным массивом.
Создайте зубчатый массив с 3 строками и 4 столбцами:
int[][] grid = new int[3][];
grid[0] = new int[4];
grid[1] = new int[4];
grid[2] = new int[4];Присвойте значение конкретной позиции (индекс строки 1, индекс столбца 2):
grid[1][2] = 42;Прочитать значение из конкретной позиции (индекс строки 0, индекс столбца 3):
int value = grid[0][3];Поскольку индексы начинаются с 0, индекс строки 0 — это первая строка, а индекс столбца 3 — четвёртый столбец.
Помните, что индексы массивов начинаются с 0, поэтому допустимые диапазоны индексов следующие:
- Строки: индекс 0 до 2 (для массива с 3 строками — 1-я строка имеет индекс 0, 2-я — индекс 1, 3-я — индекс 2)
- Столбцы: индекс 0 до 3 (для массива с 4 столбцами — 1-й столбец имеет индекс 0, 2-й — индекс 1 и так далее)
grid[3][2]), вы получите IndexOutOfRangeException.Задание
СреднеНапишите метод с именем getElement, который принимает три аргумента:
- Двумерный массив целых чисел (
int[][] matrix) - Индекс строки (
int row) - Индекс столбца (
int col)
Метод должен возвращать элемент в указанной позиции, если индексы действительны. Если любой из индексов выходит за пределы, метод должен возвращать -1.
Шпаргалка
Доступ к элементам в двумерном массиве с использованием двух индексов: [row][column]
Создать двумерный массив:
int[][] grid = new int[3][];
grid[0] = new int[4];
grid[1] = new int[4];
grid[2] = new int[4];Присвоить значение:
grid[1][2] = 42;Прочитать значение:
int value = grid[0][3];Индексы массива начинаются с 0. Доступ к элементам за пределами допустимых диапазонов вызывает исключение IndexOutOfRangeException.
Попробуйте сами
public class GetElement
{
public static int getElement(int[][] array, int row, int col)
{
// Напишите свой код здесь
}
}В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Логика и управление потоком
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