Книга: ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание

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

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

Вдобавок к одномерным массивам, которые мы рассматривали до сих пор, в C# поддерживаются два варианта многомерных массивов. Первый из них – это прямоугольный массив, т.е. многомерный массив, в котором каждая строка оказывается одной и той же длины. Чтобы объявить и заполнить многомерный прямоугольный массив, действуйте так, как показано ниже.

static void Main(string[] args) {
 …
 // Прямоугольный массив MD .
 int[,] myMatrix;
 myMatrix = new int[6,6];
 // Заполнение массива (6 * 6).
 for (int i = 0; i ‹ 6; i++) for (int j = 0; j ‹ 6; j++) myMatrix[i, j] = i * j;
 // Печать массива (6 * 6).
 for (int i = 0; i 6; i++) {
  for(int j = 0; j ‹ 6; j++) Console.Write(myMatrix[i, j] + "t");
  Console.WriteLine();
 }
 …
}

На рис. 3.22 показан соответствующий вывод (обратите внимание на прямоугольный вид массива).


Рис. 3.22. Многомерный массив

Второй тип многомерных массивов – это невыровненный массив. Как следует из самого названия, такой массив содержит некоторый набор массивов, каждый из которых может иметь свой верхний предел для индексов. Например:

static void Main(string[] args) {
 …
 // Невыровненный массив MD (т.е. массив массивов).
 // Здесь мы имеем массив из 5 разных массивов.
 int[][] myJagArray = new int[5][];
 // Создание невыровненного массива.
 for (int i = 0; i ‹ myJagArray.Length; i++) myJagArray[i] = new int[i +7];
 // Печать каждой строки (не забывайте о том, что
 // по умолчанию все элементы будут равны нулю!)
 for (int i = 0; i ‹ 5; i++) {
  Console.Write("Длина строки {0} равна {1}:t", i, myJagArray[i].Length);
  for (int j = 0; j ‹ myJagArray[i].Length; j++) Console.Write(myJagArray[i][j] + " ");
  Console.WriteLine();
 }
}

На рис. 3.23 показан соответствующий вывод (обратите, что здесь массив имеет "неровный край").


Рис. 3.23. Невыровненный массив

Теперь когда вы знаете, как строить и заполнять массивы в C#, обратим внимание на базовый класс любого массива: System.Array.

Оглавление книги


Генерация: 1.590. Запросов К БД/Cache: 3 / 1
поделиться
Вверх Вниз