Массив представляет собой набор данных одного типа. Например, объявим массив элементов типа Integer:
Dim nums(5) As Integer nums(0) = 0 nums(1) = 1 nums(2) = 2 nums(3) = 3 Console.WriteLine(nums(3))
Здесь мы объявили массив из 6 элементов типа Integer. По умолчанию всем шести элементам в массиве присваивается 0. Затем первым четырем элементам массива мы присваиваем некоторые значения. Обратите внимание, что индексация в массиве начинается с нуля. При этом мы не можем выйти за рамки установленной длины массива в 6 элементов. А следующий код вызовет исключение ArrayIndexOutOfRange, поскольку восьмого элемента в массиве не существует, в нем определено только 6 элементов:
Dim nums(5) As Integer nums(7) = 7
В вышеприведенном примере мы уже неявно инициализировали члены массива, задав для не него размер в шесть элементов. Однако можно объявить массив, а количество элементов указать потом:
Dim nums() As Integer
В таком случае нам его еще предстоит инициализировать. Мы это можем сделать так:
Dim nums() As Integer nums = New Integer(5) {} nums(0) = 0 nums(1) = 1 nums(2) = 2 nums(3) = 3
В данном примере мы c помощью ключевого слова New указываем, что хотим создать новый объект. Также указываем размер массива. А фигурные скобки служат для инициализации массива. Однако нам необязательно присваивать все значения массива после объявления. Мы можем все сделать уже при объявлении массива:
Dim nums2 As Integer() = New Integer(5) {0, 1, 2, 3, 4, 5}
Таким образом, все элементы массива у нас уже будут иметь значение. При этом мы можем использовать сокращенный синтаксис при инициализации массива без ключевого слова New, либо не задавать явным образом размер массива:
'Не указываем размер массива Dim nums1 As Integer() = New Integer() {0, 1, 2, 3, 4, 5} 'Сокращенный синтаксис инициализации Dim nums2 As Integer() = {0, 1, 2, 3, 4, 5}
В первой главе мы уже говорили, что тип переменной может выводиться компилятором автоматически. То же самое применимо и к массиву. Например:
Dim nums = {0, 1, 2, 3, 4, 5}
Кроме размера массив характеризуется таким понятием как размерность (dimension). В предыдущих примерах мы использовали одномерные массивы. Но массивы бывают и многомерными. Например:
'Одномерный массив Dim nums1 As Integer() = {0, 1, 2, 3, 4, 5} 'Двухмерный массив Dim nums2 As Integer(,) = {{0, 1, 2}, {3, 4, 5}} Console.WriteLine(nums2(1, 1))
Здесь мы создали двухмерный массив, который можно представить в виде таблицы:
0 | 1 | 2 | 3 | 4 | 5 |
0 | 1 | 2 |
3 | 4 | 5 |
При инициализации массива нам надо указать его размер, либо размер выводится из количества элементов. Однако иногда бывают ситуации, когда надо по ходу программы добавить еще один элемент в массив. Это можно сделать с помощью ключевого слова ReDim.
Dim nums1 As Integer() = {0, 1, 2, 3, 4, 5} ReDim nums1(8)
ReDim пересоздает массив с новым размером. Чтобы сохранить все прежние элементы, нам надо также использовать ключевое слово Preserve.
Dim nums1 As Integer() = {0, 1, 2, 3, 4, 5} ReDim Preserve nums1(8)Свойство Length позволяет получить количество элементов массива
Свойство Rank позволяет получить размерность массива
Метод Reverse изменяет порядок следования элементов массива на обратный
Метод Sort сортирует элементы массива
Примеры использования:
Dim nums1 As Integer() = {8, 1, 5, 3, 4, 2} Dim lenght As Integer = nums1.Length() Console.WriteLine("количество элементов: {0}", lenght) Dim rank As Integer = nums1.Rank() Console.WriteLine("размерность массива: {0}", rank) nums1.Reverse() Array.Sort(nums1) Console.WriteLine(nums1(1))