C# Багатовимірні масиви
Багатовимірні масиви
У попередньому розділі ви дізналися про масиви, які також називаються одновимірними масивами. Це чудово, і це те, що ви часто будете використовувати під час програмування на C#. Однак, якщо ви хочете зберігати дані як табличну форму, наприклад таблицю з рядками та стовпцями, вам потрібно ознайомитися з багатовимірними масивами.
Багатовимірний масив – це в основному масив масивів.
Масиви можуть мати будь-яку кількість розмірів. Найпоширенішими є двовимірні масиви (2D).
Двовимірні масиви
Щоб створити 2D-масив, додайте кожен масив у власний набір фігурних дужок і вставте кому (,
) у квадратні дужки:
Приклад
int[,] numbers = { {1, 4, 2}, {3, 6, 8} };
Корисно знати: одна кома [,]
вказує на те, що масив є двовимірним. Тривимірний масив матиме дві коми: int[,,]
.
numbers
тепер є масивом з двома масивами як його елементами. Перший елемент масиву містить три елементи: 1, 4 та 2, тоді як другий елемент масиву містить 3, 6 та 8. Щоб візуалізувати це, уявіть масив як таблицю з рядками та стовпцями:
СТОВПЕЦЬ 0 | СТОВПЕЦЬ 1 | СТОВПЕЦЬ 2 | |
---|---|---|---|
РЯДОК 0 | 1 | 4 | 2 |
РЯДОК 1 | 3 | 6 | 8 |
Доступ до елементів двовимірного масиву
Щоб отримати доступ до елемента двовимірного масиву, ви повинні вказати два індекси: один для масиву, а інший для елемента всередині цього масиву. Або ще краще, маючи на увазі візуалізацію таблиці; один для рядка та один для стовпця (див. приклад нижче).
Ця інструкція отримує доступ до значення елемента в першому рядку (0) і третьому стовпці (2) масиву numbers
:
Приклад
int[,] numbers = { {1, 4, 2}, {3, 6, 8} };
Console.WriteLine(numbers[0, 2]); // Виведе 2
Пам’ятайте, що: індекси масиву починаються з 0: [0] є першим елементом. [1] — другий елемент і т.д.
Зміна елементів двовимірного масиву
Ви також можете змінити значення елемента.
У наступному прикладі буде змінено значення елемента в першому рядку (0) і першому стовпці (0):
Приклад
int[,] numbers = { {1, 4, 2}, {3, 6, 8} };
numbers[0, 0] = 5; // Змініть значення на 5
Console.WriteLine(numbers[0, 0]); // Виведе 5 замість 1
Перебирання двовимірного масиву
Ви можете легко перебрати елементи двовимірного масиву за допомогою циклу foreach
:
Приклад
int[,] numbers = { {1, 4, 2}, {3, 6, 8} };
foreach (int i in numbers)
{
Console.WriteLine(i);
}
Ви також можете використовувати цикл for. Для багатовимірних масивів вам потрібен один цикл для кожного виміру масиву.
Також зауважте, що нам потрібно використовувати GetLength()
замість Length
, щоб указати, скільки разів цикл повинен працювати:
Приклад
int[,] numbers = { {1, 4, 2}, {3, 6, 8} };
for (int i = 0; i < numbers.GetLength(0); i++)
{
for (int j = 0; j < numbers.GetLength(1); j++)
{
Console.WriteLine(numbers[i, j]);
}
}