Поделиться через


Массивы массивов в Visual Basic

Обновлен: Ноябрь 2007

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

Понятие массива массивов

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

Пример

В следующем примере объявляется переменная массива для создания массива массивов с элементами Тип данных Double (Visual Basic). Каждый элемент массива sales является массивом, представляющим собой месяц. В каждом массиве месяца хранятся значения для всех дней в этом месяце.

Dim sales()() As Double = New Double(11)() {}
Dim month As Integer
Dim days As Integer
For month = 0 To 11 
    days = DateTime.DaysInMonth(Year(Now), month + 1)
    sales(month) = New Double(days - 1) {}
Next month

В операторе New объявления sales для переменной массива задается 12-элементный массив, каждый элемент которого имеет тип Double(), то есть массив элементов Double. Затем в цикле For определяется, сколько дней в каждом месяце этого года (Year(Now)), и задается соответствующий элемент из sales для массива Double подходящего размера.

Использование массива массивов вместо двухмерного массива в предыдущем примере позволяет сэкономить семь элементов (шесть, если год високосный). В более серьезных случаях экономия памяти может быть более значительной.

См. также

Задачи

Практическое руководство. Объявление переменной типа массива

Практическое руководство. Создание массива массивов

Практическое руководство. Инициализация массива массивов

Устранение неполадок, связанных с массивами

Основные понятия

Обзор массивов в Visual Basic

Размерность массивов в Visual Basic

Многомерные массивы в Visual Basic

Типы данных массивов в Visual Basic

Написание CLS-совместимого кода

Другие ресурсы

Массивы в Visual Basic