notebook code editor with multidimensional array

Многомерные массивы в C#: Объяснение и примеры

Введение

Многомерные массивы в 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# — мощный инструмент для организации и обработки данных. Они могут быть сложными в освоении для новичков, но с практикой становятся неотъемлемой частью набора инструментов разработчика. Используйте прямоугольные массивы для структурированных данных и зубчатые массивы, когда нужна гибкость в размерах подмассивов. Это как выбор между регулярной книжной полкой и полками на заказ для каждого отдельного тома!

Читайте так же  Работа с классами в C#: 6 примеров