В массиве хранится последовательная коллекция фиксированного размера элементов одного типа. Массив используется для хранения коллекции данных, но часто более полезно думать о массиве как о коллекции переменных одного типа.
Все массивы состоят из смежных областей памяти. Самый низкий адрес соответствует первому элементу, а самый высокий адрес — последнему.
Создание массивов в VB.Net
Чтобы объявить массив в VB.Net, вы используете оператор Dim. Например,
Dim intData(30) ' an array of 31 elements Dim strData(20) As String ' an array of 21 strings Dim twoDarray(10, 20) As Integer 'a two dimensional array of integers Dim ranges(10, 100) 'a two dimensional array
Вы также можете инициализировать элементы массива при объявлении массива. Например,
Dim intData() As Integer = {12, 16, 20, 24, 28, 32} Dim names() As String = {"Karthik", "Sandhya", _ "Shivangi", "Ashwitha", "Somnath"} Dim miscData() As Object = {"Hello World", 12d, 16ui, "A"c}
Элементы в массиве могут быть сохранены и доступны с помощью индекса массива. Следующая программа демонстрирует это —
Module arrayApl Sub Main() Dim n(10) As Integer ' n is an array of 11 integers ' Dim i, j As Integer ' initialize elements of array n ' For i = 0 To 10 n(i) = i + 100 ' set element at location i to i + 100 Next i ' output each array element's value ' For j = 0 To 10 Console.WriteLine("Element({0}) = {1}", j, n(j)) Next j Console.ReadKey() End Sub End Module
Когда приведенный выше код компилируется и выполняется, он дает следующий результат —
Element(0) = 100 Element(1) = 101 Element(2) = 102 Element(3) = 103 Element(4) = 104 Element(5) = 105 Element(6) = 106 Element(7) = 107 Element(8) = 108 Element(9) = 109 Element(10) = 110
Динамические массивы
Динамические массивы — это массивы, которые могут измеряться и изменяться в соответствии с потребностями программы. Вы можете объявить динамический массив с помощью оператора ReDim .
Синтаксис для оператора ReDim —
ReDim [Preserve] arrayname(subscripts)
Куда,
-
Ключевое слово Preserve помогает сохранить данные в существующем массиве при изменении его размера.
-
arrayname — имя массива для повторного измерения.
-
subscripts указывает новое измерение.
Ключевое слово Preserve помогает сохранить данные в существующем массиве при изменении его размера.
arrayname — имя массива для повторного измерения.
subscripts указывает новое измерение.
Module arrayApl Sub Main() Dim marks() As Integer ReDim marks(2) marks(0) = 85 marks(1) = 75 marks(2) = 90 ReDim Preserve marks(10) marks(3) = 80 marks(4) = 76 marks(5) = 92 marks(6) = 99 marks(7) = 79 marks(8) = 75 For i = 0 To 10 Console.WriteLine(i & vbTab & marks(i)) Next i Console.ReadKey() End Sub End Module
Когда приведенный выше код компилируется и выполняется, он дает следующий результат —
0 85 1 75 2 90 3 80 4 76 5 92 6 99 7 79 8 75 9 0 10 0
Многомерные массивы
VB.Net допускает многомерные массивы. Многомерные массивы также называют прямоугольными массивами.
Вы можете объявить двумерный массив строк как —
Dim twoDStringArray(10, 20) As String
или трехмерный массив целочисленных переменных —
Dim threeDIntArray(10, 10, 10) As Integer
Следующая программа демонстрирует создание и использование 2-мерного массива —
Module arrayApl Sub Main() ' an array with 5 rows and 2 columns Dim a(,) As Integer = {{0, 0}, {1, 2}, {2, 4}, {3, 6}, {4, 8}} Dim i, j As Integer ' output each array element's value ' For i = 0 To 4 For j = 0 To 1 Console.WriteLine("a[{0},{1}] = {2}", i, j, a(i, j)) Next j Next i Console.ReadKey() End Sub End Module
Когда приведенный выше код компилируется и выполняется, он дает следующий результат —
a[0,0]: 0 a[0,1]: 0 a[1,0]: 1 a[1,1]: 2 a[2,0]: 2 a[2,1]: 4 a[3,0]: 3 a[3,1]: 6 a[4,0]: 4 a[4,1]: 8
Зубчатый массив
Jagged массив — это массив массивов. Следующий код показывает объявление зубчатого массива с именем показателей целых чисел —
Dim scores As Integer()() = New Integer(5)(){}
Следующий пример иллюстрирует использование зубчатого массива —
Module arrayApl Sub Main() 'a jagged array of 5 array of integers Dim a As Integer()() = New Integer(4)() {} a(0) = New Integer() {0, 0} a(1) = New Integer() {1, 2} a(2) = New Integer() {2, 4} a(3) = New Integer() {3, 6} a(4) = New Integer() {4, 8} Dim i, j As Integer ' output each array element's value For i = 0 To 4 For j = 0 To 1 Console.WriteLine("a[{0},{1}] = {2}", i, j, a(i)(j)) Next j Next i Console.ReadKey() End Sub End Module
Когда приведенный выше код компилируется и выполняется, он дает следующий результат —
a[0][0]: 0 a[0][1]: 0 a[1][0]: 1 a[1][1]: 2 a[2][0]: 2 a[2][1]: 4 a[3][0]: 3 a[3][1]: 6 a[4][0]: 4 a[4][1]: 8
Массив Класс
Класс Array является базовым классом для всех массивов в VB.Net. Он определяется в пространстве имен System. Класс Array предоставляет различные свойства и методы для работы с массивами.
Свойства класса Array
В следующей таблице приведены некоторые наиболее часто используемые свойства класса Array.
Sr.No | Название и описание недвижимости |
---|---|
1 |
IsFixedSize Получает значение, указывающее, имеет ли массив фиксированный размер. |
2 |
IsReadOnly Получает значение, указывающее, доступен ли массив только для чтения. |
3 |
длина Получает 32-разрядное целое число, представляющее общее количество элементов во всех измерениях массива. |
4 |
Большая длина Получает 64-разрядное целое число, представляющее общее количество элементов во всех измерениях массива. |
5 |
Ранг Получает ранг (количество измерений) массива. |
IsFixedSize
Получает значение, указывающее, имеет ли массив фиксированный размер.
IsReadOnly
Получает значение, указывающее, доступен ли массив только для чтения.
длина
Получает 32-разрядное целое число, представляющее общее количество элементов во всех измерениях массива.
Большая длина
Получает 64-разрядное целое число, представляющее общее количество элементов во всех измерениях массива.
Ранг
Получает ранг (количество измерений) массива.
Методы класса Array
В следующей таблице приведены некоторые из наиболее часто используемых методов класса Array.
Sr.No | Название и описание метода |
---|---|
1 |
Public Shared Sub Clear (массив как массив, индекс как целое число, длина как целое число) Устанавливает диапазон элементов в массиве на ноль, на ложь или на ноль, в зависимости от типа элемента. |
2 |
Public Shared Sub Copy (sourceArray As Array, destinationArray As Array, длина As Integer) Копирует диапазон элементов из массива, начиная с первого элемента, и вставляет их в другой массив, начиная с первого элемента. Длина указывается как 32-разрядное целое число. |
3 |
Public Sub CopyTo (массив как массив, индекс как целое число) Копирует все элементы текущего одномерного массива в указанный одномерный массив, начиная с указанного индекса целевого массива. Индекс указывается как 32-разрядное целое число. |
4 |
Открытая функция GetLength (измерение как целое число) как целое число Получает 32-разрядное целое число, которое представляет количество элементов в указанном измерении массива. |
5 |
Открытая функция GetLongLength (измерение как целое число), как долго Получает 64-разрядное целое число, которое представляет количество элементов в указанном измерении массива. |
6 |
Открытая функция GetLowerBound (измерение как целое число) как целое число Получает нижнюю границу указанного измерения в массиве. |
7 |
Открытая функция GetType As Type Получает тип текущего экземпляра (унаследованного от объекта). |
8 |
Открытая функция GetUpperBound (измерение как целое число) как целое число Получает верхнюю границу указанного измерения в массиве. |
9 |
Открытая функция GetValue (индекс как целое число) как объект Получает значение в указанной позиции в одномерном массиве. Индекс указывается как 32-разрядное целое число. |
10 |
Открытая общая функция IndexOf (массив как массив, значение как объект) как целое число Ищет указанный объект и возвращает индекс первого вхождения во всем одномерном массиве. |
11 |
Public Shared Sub Reverse (массив как массив) Меняет последовательность элементов во всем одномерном массиве. |
12 |
Public Sub SetValue (значение как объект, индекс как целое число) Устанавливает значение для элемента в указанной позиции в одномерном массиве. Индекс указывается как 32-разрядное целое число. |
13 |
Public Shared Sub Sort (массив как массив) Сортирует элементы во всем одномерном массиве, используя реализацию IComparable каждого элемента массива. |
14 |
Открытая переопределяемая функция ToString As String Возвращает строку, которая представляет текущий объект (Наследуется от Object). |
Public Shared Sub Clear (массив как массив, индекс как целое число, длина как целое число)
Устанавливает диапазон элементов в массиве на ноль, на ложь или на ноль, в зависимости от типа элемента.
Public Shared Sub Copy (sourceArray As Array, destinationArray As Array, длина As Integer)
Копирует диапазон элементов из массива, начиная с первого элемента, и вставляет их в другой массив, начиная с первого элемента. Длина указывается как 32-разрядное целое число.
Public Sub CopyTo (массив как массив, индекс как целое число)
Копирует все элементы текущего одномерного массива в указанный одномерный массив, начиная с указанного индекса целевого массива. Индекс указывается как 32-разрядное целое число.
Открытая функция GetLength (измерение как целое число) как целое число
Получает 32-разрядное целое число, которое представляет количество элементов в указанном измерении массива.
Открытая функция GetLongLength (измерение как целое число), как долго
Получает 64-разрядное целое число, которое представляет количество элементов в указанном измерении массива.
Открытая функция GetLowerBound (измерение как целое число) как целое число
Получает нижнюю границу указанного измерения в массиве.
Открытая функция GetType As Type
Получает тип текущего экземпляра (унаследованного от объекта).
Открытая функция GetUpperBound (измерение как целое число) как целое число
Получает верхнюю границу указанного измерения в массиве.
Открытая функция GetValue (индекс как целое число) как объект
Получает значение в указанной позиции в одномерном массиве. Индекс указывается как 32-разрядное целое число.
Открытая общая функция IndexOf (массив как массив, значение как объект) как целое число
Ищет указанный объект и возвращает индекс первого вхождения во всем одномерном массиве.
Public Shared Sub Reverse (массив как массив)
Меняет последовательность элементов во всем одномерном массиве.
Public Sub SetValue (значение как объект, индекс как целое число)
Устанавливает значение для элемента в указанной позиции в одномерном массиве. Индекс указывается как 32-разрядное целое число.
Public Shared Sub Sort (массив как массив)
Сортирует элементы во всем одномерном массиве, используя реализацию IComparable каждого элемента массива.
Открытая переопределяемая функция ToString As String
Возвращает строку, которая представляет текущий объект (Наследуется от Object).
Полный список свойств и методов класса Array см. В документации Microsoft.
пример
Следующая программа демонстрирует использование некоторых методов класса Array:
Module arrayApl Sub Main() Dim list As Integer() = {34, 72, 13, 44, 25, 30, 10} Dim temp As Integer() = list Dim i As Integer Console.Write("Original Array: ") For Each i In list Console.Write("{0} ", i) Next i Console.WriteLine() ' reverse the array Array.Reverse(temp) Console.Write("Reversed Array: ") For Each i In temp Console.Write("{0} ", i) Next i Console.WriteLine() 'sort the array Array.Sort(list) Console.Write("Sorted Array: ") For Each i In list Console.Write("{0} ", i) Next i Console.WriteLine() Console.ReadKey() End Sub End Module
Когда приведенный выше код компилируется и выполняется, он дает следующий результат —