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

Помните, что индексы массивов начинаются с 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.

Шпаргалка

Доступ к элементам в двумерном массиве с использованием двух индексов: [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)
    {
        // Напишите свой код здесь
    }
}
quiz iconПроверьте себя

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

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