Найти тему

Двумерный массив в C sharp. Простое объяснение.

Оглавление
Двумерный массив
Двумерный массив

Всем Хай! Я надеюсь, вы попрактиковались в одномерных массивах. Как я в этой статье. Потому, что мы начинаем изучать многомерные массивы. Правда, дальше двумерного массива в этом курсе мы не зайдём. Но и его хватит за глаза.

И так. Что из себя представляет двумерный массив? Как вы уже, я надеюсь, знаете, массив это объединение множество элементов по одному типу.

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

int[] array = { 4, 6, 9, 11 }

Двумерный массив

Так вот если одномерный массив это полка, то двумерный массив это стеллаж. Если в одномерном массиве нужно знать один индекс, чтобы узнать информацию. То в двумерном массиве нужно два индекса. Номер строки и номер столбца.

Так выглядит двумерный массив.

int[,] array = { { 1,8,7 }, { 2,3,4 }, { 3,5,6 } }

На первый взгляд может показаться, что будут сложности с определением индексов у ячеек с информацией. А если я его запишу немного иначе?

int[,] array =

{

{ 1,8,7 },

{ 2,3,4 },

{ 3,5,6 }

}

Теперь, я думаю понятно, почему двумерный массив можно назвать стеллажом. Сразу видно, где какая строчка, а где столбец. Здесь тоже отсчёт индексов начинается с 0. Сверху вниз. Слева направо.

  • Допустим, цифра 4 находится по такому адресу - array[1,2]
  • А цифра 5 по такому - array[2,1]

И так далее.

В целом тоже ничего сложного. Просто чуть больше циферок и между квадратными скобками стоит запятая.

Работа с двумерным массивом

Рассмотрим, как работать с таким массивом в коде.

int[,] array = { { 1,8,7 }, { 2,3,4 }, { 3,5,6 } };
for(int i = 0; i < array.GetLength(0); i++)
{
for (int j = 0; j < array.GetLength(1); j++)
{
Console.Write(array[i,j] + " ");
}
Console.WriteLine();

Чтобы вывести значения массива в консоли, нам понадобится запустить два цикла. Один для перебора строчки. А в нутрии него перебор по столбцам. В отличие от одномерного массива с одним циклом.

В первом цикле для перебора строк мы использовали переменную «i», а во втором для перебора столбцов переменную «j».

И ещё важное отличие. При вычислении длины одномерного массива мы использовали «Length». То есть запись была такой: «array.Length»

Здесь это уже не подходит. Нужно использовать «GetLength». Причём для внешнего цикла мы добавляем 0 - «array.GetLength(0)». А для внутреннего 1 – «array.GetLength(1)».

Заметили, что во внешнем цикле стоит пустой вывод в консоль «Console.WriteLine()»? Он используется просто для переноса каждой строчки массива на новую строчку в консоли. Чтобы при выводе массива в консоли это смотрелось красивей, а не в одну строчку.

Двумерный массив синтаксис
Двумерный массив синтаксис

Также этот массив мы можем заполнить позже в коде. А вначале только его объявить и указать, сколько будет строк и столбцов.

int[,] array = new int[3, 3]

Давайте посмотрим код ниже с рандомным заполнением такого массива.

Random rand = new Random();
int[,] array = new int[3, 3];
for(int i = 0; i < array.GetLength(0); i++)
{
for (int j = 0; j < array.GetLength(1); j++)
{
array[i, j] = rand.Next(0, 9);
Console.Write(array[i,j] + " ");
}
Console.WriteLine();
}

Всё также как с первой записью. Только здесь мы объявляем рандом и указываем внутри внутреннего цикла, какими цифрами хотим его забить «array[i, j] = rand.Next(0, 9)».

Двумерный массив рандомные значения
Двумерный массив рандомные значения

В принципе, с двумерным массивом всё. В следующей статье будет практика. Если с одномерным массивом мы делали программку для брони столиков. То с двумерным массивом будем делать программку для библиотеки. Так что не пропустите и подпишитесь на канал. Ну а вопросы вы знаете куда писать (в комментарии). Ну а я с вами прощаюсь и пойду писать эту программку. Всем пока!

#it #разработкаигр #программированиеснуля #программированиедляначинающих #какстатьпрограммистом #csharp #сишарп

Наука
7 млн интересуются