Массивы

Последнее обновление: 30.10.2015

Массив представляет собой набор данных одного типа. Например, объявим массив элементов типа 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))

Здесь мы создали двухмерный массив, который можно представить в виде таблицы:

Одномерный массив nums1

0

1

2

3

4

5

Двухмерный массив nums2

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))
Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850