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