Основы C#

Многомерные массивы в C# с примерами

Обновлено: · 2 мин чтения

Многомерные массивы хранят данные в виде таблицы или даже в нескольких измерениях. Рассмотрим два вида таких массивов, прямоугольные и зубчатые, как их создавать и когда выбирать каждый из них.

Многомерные массивы в C# с примерами
Содержание
  1. Введение
  2. Основы
    1. Прямоугольные Массивы
    2. Зубчатые Массивы
  3. Практические Примеры
    1. Пример 1: Таблица Умножения
    2. Пример 2: Массив Ступенчатых Значений
  4. Заключение

Введение

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

Основы

Массив в C# - это структура для хранения данных одного типа. Многомерные массивы могут быть двух типов:

  1. Прямоугольные массивы.
  2. Зубчатые массивы (массивы массивов).

Прямоугольные Массивы

Представьте прямоугольную таблицу, где каждая ячейка хранит значение. Это и есть прямоугольный массив. Количество строк и столбцов определяет размерность.

Создание и инициализация

int[,] matrix = new int[3, 4]; // Массив 3x4

Создав массив, его нужно заполнить и научиться обращаться к элементам по двум индексам.

Пример заполнения и доступа

for (int i = 0; i < 3; i++) {
    for (int j = 0; j < 4; j++) {
        matrix[i, j] = i + j; // Присваиваем сумму индексов
    }
}

// Доступ к элементу
int value = matrix[1, 2]; // 3 (1+2)

Зубчатые Массивы

Это массивы массивов. Каждый "ряд" может иметь различную длину, похоже на зубцы.

Создание прямоугольного массива

int[][] jaggedArray = new int[3][]; 
jaggedArray[0] = new int[4]; // Первый ряд - 4 элемента
jaggedArray[1] = new int[5]; // Второй ряд - 5 элементов
jaggedArray[2] = new int[3]; // Третий ряд - 3 элемента

Заполнение и чтение элементов матрицы

for (int i = 0; i < jaggedArray.Length; i++) {
    for (int j = 0; j < jaggedArray[i].Length; j++) {
        jaggedArray[i][j] = i * j;
    }
}

// Доступ к элементу
int value = jaggedArray[1][2]; // 2 (1*2)

Практические Примеры

Закрепим материал на практике: ниже несколько небольших задач, которые показывают работу с многомерными массивами.

Пример 1: Таблица Умножения

Прямоугольный массив идеально подходит для создания таблицы умножения:

int[,] multTable = new int[10, 10];

for (int i = 1; i <= 10; i++) {
    for (int j = 1; j <= 10; j++) {
        multTable[i - 1, j - 1] = i * j;
    }
}

// Вывод таблицы умножения
for (int i = 0; i < 10; i++) {
    for (int j = 0; j < 10; j++) {
        Console.Write($"{multTable[i, j]}\t");
    }
    Console.WriteLine();
}

Пример 2: Массив Ступенчатых Значений

Зубчатые массивы идеальны для хранения данных с переменным количеством столбцов:

int[][] stepsArray = new int[4][];
for (int i = 0; i < stepsArray.Length; i++) {
    stepsArray[i] = new int[i + 1];
    for (int j = 0; j <= i; j++) {
        stepsArray[i][j] = j;
    }
}

foreach (int[] row in stepsArray) {
    foreach (int num in row) {
        Console.Write($"{num} ");
    }
    Console.WriteLine();
}

Заключение

Многомерные массивы в C# - мощный инструмент для организации и обработки данных. Они могут быть сложными в освоении для новичков, но с практикой становятся привычной частью набора инструментов разработчика. Используйте прямоугольные массивы для структурированных данных и зубчатые массивы, когда нужна гибкость в размерах подмассивов. Это как выбор между регулярной книжной полкой и полками на заказ для каждого отдельного тома!