Menu
Coddy logo textTech

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 — это 1-я строка, а индекс столбца 3 — это 4-й столбец.

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

  • Строки: индекс от 0 до 2 (для массива из 3 строк — 1-я строка имеет индекс 0, 2-я — индекс 1, 3-я — индекс 2)
  • Столбцы: индекс от 0 до 3 (для массива из 4 столбцов — 1-й столбец имеет индекс 0, 2-й — индекс 1 и так далее)
Если вы попытаетесь получить доступ к элементу за пределами этих диапазонов (например, grid[3][2]), вы получите IndexOutOfRangeException.
challenge icon

Задание

Средне

Напишите метод с именем getElement, который принимает три аргумента:

  1. Двумерный массив целых чисел (int[][] matrix)
  2. Индекс строки (int row)
  3. Индекс столбца (int col)

Метод должен возвращать элемент в указанной позиции, если индексы допустимы. Если какой-либо из индексов выходит за пределы диапазона, метод должен возвращать -1.

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

public class GetElement
{
    public static int getElement(int[][] array, int row, int col)
    {
        // Напишите свой код здесь
    }
}
quiz iconПроверьте себя

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

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