Практическое руководство. Инициализация переменной массива в Visual Basic
С помощью литералов массива можно заполнение массива начальными значениями при его создании.Можно включить литерал массива в предложение New и или указать тип или разрешение его, чтобы определить из значений в литерале массива.Дополнительные сведения о выводе типа см. в разделе "заполнение массива начальными значениями" раздела Массивы в Visual Basic.
Инициализация переменной массива с помощью литерала массива
Либо в предложении New, либо при задании значения массива укажите в фигурных скобках ({}) значения элементов.В следующем примере показано несколько способов объявить, создать и инициализировать переменную, которая должна содержать массив элементов типа Char.
' The following five lines of code create the same array. ' Preferred syntaxes are on the lines with chars1 and chars2. Dim chars1 = {"%"c, "&"c, "@"c} Dim chars2 As Char() = {"%"c, "&"c, "@"c} Dim chars3() As Char = {"%"c, "&"c, "@"c} Dim chars4 As Char() = New Char(2) {"%"c, "&"c, "@"c} Dim chars5() As Char = New Char(2) {"%"c, "&"c, "@"c}
После каждой выписка выполняется, массив, созданный составляет 3, с элементами по индексу 0 через индекса 2, содержащий начальные значения.Если указать верхнюю границу и значения, необходимо включить значение для каждого элемента с индексами от 0 до верхней границы.
Обратите внимание, что нет необходимости указывать индекс верхней границы, если значения элементов указываются в литерале массива.Если верхняя граница не задана, размер массива выводится на основе числа значений в литерале массива.
Инициализация переменной многомерного массива с помощью литералов массива
Поместите значения в фигурные скобки ({}).Убедитесь, что вложенные литералы массива все подразумевают массивы одного типа и длины.Далее приведен код с несколькими примерами инициализации многомерного массива.
Dim numbers = {{1, 2}, {3, 4}, {5, 6}} Dim customerData = {{"City Power & Light", "http://www.cpandl.com/"}, {"Wide World Importers", "http://wideworldimporters.com"}, {"Lucerne Publishing", "http://www.lucernepublishing.com"}} ' You can nest array literals to create arrays that have more than two ' dimensions. Dim twoSidedCube = {{{1, 2}, {3, 4}}, {{5, 6}, {7, 8}}}
Можно явно задать границы массива или не задавать их, тогда компилятор выведет границы массива на основе значений в литерале массива.Если указать и верхние границы и значения, необходимо включить значение для каждого элемента от индекса 0 до верхней границы каждого измерения.В следующем примере показано несколько способов объявить, создать и инициализировать переменную, которая должна содержать двухмерный массив элементов типа Short.
' The following five lines of code create the same array. ' Preferred syntaxes are on the lines with scores1 and scores2. Dim scores1 = {{10S, 10S, 10S}, {10S, 10S, 10S}} Dim scores2 As Short(,) = {{10, 10, 10}, {10, 10, 10}} Dim scores3(,) As Short = {{10, 10, 10}, {10, 10, 10}} Dim scores4 As Short(,) = New Short(1, 2) {{10, 10, 10}, {10, 10, 10}} Dim scores5(,) As Short = New Short(1, 2) {{10, 10, 10}, {10, 10, 10}}
После каждой выписка выполняется, созданный массив содержит 6 инициализированных элементов, имеющих индексов (0,0), (0,1), (0,2), (1,0), (1,1) и (1,2).Каждое место массива содержит значение 10.
Следующий пример выполняет перебор многомерный массив.В Visual Basic Console Application, вставьте код в методе Sub Main().Последние на комментарии показан результат.
Dim numbers = {{1, 2}, {3, 4}, {5, 6}} ' Iterate through the array. For index0 = 0 To numbers.GetUpperBound(0) For index1 = 0 To numbers.GetUpperBound(1) Debug.Write(numbers(index0, index1).ToString & " ") Next Debug.WriteLine("") Next ' Output ' 1 2 ' 3 4 ' 5 6
Инициализация переменной массива массивов с помощью литералов массива
Поместите значения объектов в фигурные скобки ({}).Хотя можно также вложить литералы массива, задающие массивы разной длины, в случае массива массивов следует убедиться, что вложенные литералы массива заключены в скобки (()).Скобки задают принудительное вычисление вложенных литералов массива, результирующие массивы используются как начальные значения массива массивов.Далее приведен код с двумя примерами инициализации массива массивов.
' Create a jagged array of arrays that have different lengths. Dim jaggedNumbers = {({1, 2, 3}), ({4, 5}), ({6}), ({7})} ' Create a jagged array of Byte arrays. Dim images = {New Byte() {}, New Byte() {}, New Byte() {}}
Следующий пример выполняет перебор массив массивов.Вставьте код внутри метода Sub Main() в Visual Basic Console Application.На комментарии в коде показывает, результат выполнения должен быть.
' Create a jagged array of arrays that have different lengths. Dim jaggedNumbers = {({1, 2, 3}), ({4, 5}), ({6}), ({7})} For indexA = 0 To jaggedNumbers.Length - 1 For indexB = 0 To jaggedNumbers(indexA).Length - 1 Debug.Write(jaggedNumbers(indexA)(indexB) & " ") Next Debug.WriteLine("") Next ' Output: ' 1 2 3 ' 4 5 ' 6 ' 7
См. также
Задачи
Устранение неполадок, связанных с массивами (Visual Basic)