Menu
Coddy logo textTech

Доступ к элементам 2D-массива

Часть раздела Логика и управление потоком путешествия по 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];

Присвойте значение определённой позиции (индекс row 1, индекс column 2):

grid[1][2] = 42;

Прочитайте значение из определённой позиции (row index 0, column index 3):

int value = grid[0][3];

Поскольку индексы начинаются с 0, row index 0 — это 1-я строка, а column index 3 — 4-й столбец.

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

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

Задание

Средне

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

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

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

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

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

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

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

Потренируйтесь самостоятельно: Онлайн-компилятор C#