
Массивы в Visual Basic
Visual Studio 2012
Другие версии
4 из 8 оценили этот материал как полезный - Оценить эту тему
Массив представляет собой набор значений, логически связанных друг с другом, например, число учеников в каждом классе в школе.
С помощью массива, можно обратиться к этим связанным значениям тем же именем и использовать номер, вызвав индексом или подстрочным, который необходимо сообщить им врозь. Отдельные значения, называются элементами массива. Они сопредельны от индекса 0 до наибольшее значение индекса.
В отличие от массива, переменная, содержащая одно значение называется скалярной переменной.
Содержание раздела
-
Элементы массива в простом массиве
-
Создание массива
-
Объявление массива
-
Сохранение значений в массиве
-
Заполнение массива начальными значениями
-
Вложенные литералы массива
-
-
Итерация через массив
-
Массивы массивов
-
Массивы нулевой длины
-
Размер массива
-
Типы массива и другие типы
-
Коллекции как альтернатива массивам
Элементы массива в простом массиве
В следующем примере объявляется переменная массива для хранения числа учеников в каждом классе школы.
VB
Dim students(6) As Integer
Массив students
в
предыдущем примере содержит 7
элементов. Индексы
элементов лежат в диапазоне от 0 до
6. Использовать
этот массив проще, чем 7 объявление
переменных.
На
следующем рисунке показан массив students
. Для
каждого элемента массива:
-
Индекс элемента представляет школьный класс (индекс 0 представляет детский сад).
-
Значение, содержащееся в элементе представляющее число студентов в этой ранге.
Элементы массива "учеников"
В
следующем примере показано обращение
к первому, второму и последнему элементу
массива students
.
VB
Dim kindergarten As Integer = students(0)
Dim firstGrade As Integer = students(1)
Dim sixthGrade As Integer = students(6)
MsgBox("Students in kindergarten = " & CStr(kindergarten))
MsgBox("Students in first grade = " & CStr(firstGrade))
MsgBox("Students in sixth grade = " & CStr(sixthGrade))
Можно ссылаться на массив в целом, используя только имя переменной массива без индексов.
Считается,
что массив students
в
пользах предыдущего примера и одноразмерн
один индекс. Массив,
использующий более одного индекса,
называется многомерным массивом. Дополнительные
сведения см. в разделе остальная часть
этих разделах и Размерность
массивов в Visual Basic.
Создание массива
Можно указать размер массива можно несколькими способами. Можно указать размер если массив объявляется, как показано в следующем примере.
VB
Dim cargoWeights(10) As Double
Dim atmospherePressures(2, 2, 4, 10) As Short
Dim inquiriesByYearMonthDay(20)()() As Byte
Можно также использовать предложение New, чтобы указать размер массива, когда он создал, как показано в следующем примере.
VB
cargoWeights = New Double(10) {}
atmospherePressures = New Short(2, 2, 4, 10) {}
inquiriesByYearMonthDay = New Byte(20)()() {}
Если уже существует массив, можно переопределить его размер с помощью оператора Redim. Можно указать, что оператор Redim должна содержать значения, которые в массиве или можно указать, что она создает пустой массив. В следующем примере показаны различные варианты использования оператора Redimдля изменения размера существующего массива.
VB
' Assign a new array size and retain the current element values.
ReDim Preserve cargoWeights(20)
' Assign a new array size and retain only the first five element values.
ReDim Preserve cargoWeights(4)
' Assign a new array size and discard all current element values.
ReDim cargoWeights(15)
Дополнительные сведения см. в разделе Оператор ReDim (Visual Basic).
Объявление массива
Переменная массива объявляется так же, как любая другая переменная, с помощью инструкции Dim. Выполните типом или именем переменной с одним или несколькими парой скобок, чтобы показать, что он будет содержать массив, а не скаляр, переменная, содержащая одно значение.
После того как объявить массив, можно указать его размер с помощью Оператор ReDim (Visual Basic).
В следующем примере объявляется переменная одномерного массива, добавив пару скобок после типа. В этом примере также определяется измерения массива с помощью Оператор ReDim (Visual Basic).
VB
Dim cargoWeights() As Double
В следующем примере объявляется переменная многомерного массива путем добавления пару скобок после типа и установив запятые внутри скобок для отделения измерений. В этом примере также определяется измерения массива с помощью Оператор ReDim (Visual Basic).
VB
Dim atmospherePressures(,,,) As Short
Для объявления переменной массива массивов добавьте пару скобок после имени переменной для каждого уровня вложенных массивов.
VB
Dim inquiriesByYearMonthDay()()() As Byte
Предыдущие примеры объявляют переменных массива массивов, но не присвоено. По-прежнему необходимо создать массив, инициализировать его и присвоить его переменной.
Сохранение значений в массиве
К любому местоположению в массиве можно получить доступ, используя индекс типа Integer. Можно сохранять и извлекать значения массива, ссылаясь на местоположение в массиве с помощью индекса места, приведенного в скобках. Индексы, индексация многомерных массивов разделяются запятыми (,).Необходим один индекс для каждого измерения массива. В следующем примере показаны некоторые операторы, которые сохраняют значения в массивах.
VB
Dim i = 4
Dim j = 2
Dim numbers(10) As Integer
Dim matrix(5, 5) As Double
numbers(i + 1) = 0
matrix(3, j * 2) = j
В следующем примере показаны некоторые операторы, которые получают значения из массивов.
VB
Dim v = 2
Dim i = 1
Dim j = 1
Dim k = 1
Dim wTotal As Double = 0.0
Dim sortedValues(5), rawValues(5), estimates(2, 2, 2) As Double
Dim lowestValue = sortedValues(0)
wTotal += (rawValues(v) ^ 2)
Dim firstGuess = estimates(i, j, k)
Заполнение массива начальными значениями
С помощью литералов массива можно создать массив, содержащий начальный набор значений. Литерал массива состоит из списка разделенных запятыми значений, заключенных в фигурные скобки ({}).
При создании массива с помощью литерала массива можно либо указать тип массива, либо использовать вывод типа для определения типа массива. В следующем коде показаны оба параметра.
VB
Dim numbers = New Integer() {1, 2, 4, 8}
Dim doubles = {1.5, 2, 9.9, 18}
При использовании определение типа, тип массива определяется доминантным введите список значений, передаваемого для литерала массива. Главный тип уникальный тип, к которому все другие введите литерал массива может расширить. Если этот уникальный тип не может быть определен, то главный тип уникальный тип, к которому все другие типа в массив может уменьшить. Если ни один из указанных уникальных типов нельзя определить, главным типом будетObject. Например, если список значений, передаваемого в литерал массива содержит значения типа Integer, Long и Double, то результирующий массив типаDouble. и Integer и Long расширяют только к Double. Поэтому Double является главным типом. Дополнительные сведения см. в разделе Расширяющие и сужающие преобразования (Visual Basic). Эти правила зависимости применяются к типам, которые в результате вывода становятся основанием для массивов, локальные переменные, определенные в члена класса. Хотя можно использовать литералы массива при создании переменных класс- уровня, нельзя использовать определение типа на уровне класса. В результате литералы массива, которые определены на уровне класса вывести значения, которые предоставляются для литерала массива как тип Object.
Можно явно задать тип элементов в массиве, создать с помощью литерала массива. В таком случае значения литерала массива должны расширяться до типа элементов массива. В следующем примере кода создается массив типа Double из списка целых чисел.
VB
Dim values As Double() = {1, 2, 3, 4, 5, 6}