Учебники

5) Массивы VB.Net

Что такое массив?

Массив — это структура данных, используемая для хранения элементов одного типа данных. Элементы упорядочены последовательно, причем первый элемент имеет индекс 0, а последний элемент — индекс n-1, где n — общее количество элементов в массиве.

В этом уроке вы узнаете:

Как объявить и инициализировать массив

В VB.NET массивы объявляются с помощью оператора Dim. Например:

Dim myData() As Integer

В приведенном выше примере мы определили массив с именем myData, и он должен содержать элементы целочисленного типа данных. В следующем примере демонстрируется, как мы можем объявить массив для хранения строковых элементов:

Dim myData(10) As String

Мы определили массив с именем myData для хранения 10 строк.

Мы можем инициализировать массивы во время их объявления. Например:

Dim myData() As Integer = {11, 12, 22, 7, 47, 32}

Мы объявили массив myData и добавили в него 6 целочисленных элементов. Это также может быть сделано для случая строк:

Dim students() As String = {"John", "Alice", "Antony", "Gloria", "jayden"}

Мы создали массив с именем студентов и добавили к нему 5 имен.

Массивы фиксированного размера

Массив фиксированного размера содержит фиксированное количество элементов. Это означает, что вы должны определить количество элементов, которые будут храниться при его определении. Предположим, вам нужен массив для хранения только 3 имен учеников. Вы можете определить и инициализировать массив следующим образом:

Dim students(0 to 2) As String 
      
students(0) = "John"
students (1) = "Alice"
students (2) = "Antony"

Мы начали с объявления массива строк с именем студентов. От 0 до 2 объявляет, что массив будет хранить элементы от его индекса 0 до индекса 2, что означает, что у нас будет всего 3 элемента.

Чтобы добавить элементы в массив, мы использовали имя массива и указали индекс, в котором будет храниться элемент. Например, имя John будет храниться в индексе 0 массива, что означает, что оно будет формировать первый элемент массива. Антоний будет последним элементом массива.

Динамические массивы

Это массив, который может содержать любое количество элементов. Размер массива может увеличиться в любое время. Это означает, что вы можете добавлять новые элементы в массив в любое время. Чтобы продемонстрировать это, давайте сначала определим массив целых чисел:

Dim nums() As Integer

Мы определили целочисленный массив с именем nums. Теперь вам нужно добавить два элемента в массив, оставляя место для его изменения. Вы должны использовать оператор ReDim следующим образом:

ReDim nums(1)
nums(0) = 12
nums(1) = 23

Наш массив теперь имеет два элемента в индексах 0 и 1. Нам нужно добавить третий элемент в индекс 3, сохранив два элемента, которые у него уже есть. Мы можем сделать это следующим образом:

ReDim Preserve nums(2)
nums(2) = 35

Массив теперь имеет три элемента.

Извлечение содержимого массива

Получение означает доступ к элементам массива. Чтобы получить доступ к элементу массива, мы используем его индекс. Давайте продемонстрируем это на примере.

Шаг 1) Начните с создания нового консольного приложения.

Шаг 2) Добавьте следующий код в приложение:

Module Module1
    Sub Main()

       Dim students(0 to 2) As String 

        students(0) = "John"

        students(1) = "Alice"

        students(2) = "Antony"

        Console.WriteLine("First student is {0} ", students(0))

        Console.WriteLine("Second student is {0} ", students(1))

        Console.WriteLine("Third student is {0} ", students(2))


        Console.ReadKey()

    End Sub

End Module

Шаг 3) Запустите код, нажав кнопку «Пуск» на панели инструментов. Вы получите следующее окно:

Мы использовали следующий код:

Объяснение кода:

  1. Создание модуля с именем Module1.
  2. Создание основной подпроцедуры.
  3. Создание массива с именем студентов для хранения строковых элементов. Массив будет хранить элементы от индекса 0 до индекса 2, что означает, что он будет иметь в общей сложности 3 элемента.
  4. Добавляя имя John в качестве первого элемента массива, то есть John хранится с индексом 0.
  5. Добавляем имя Алиса в качестве второго элемента массива, то есть Алиса хранится по индексу 1.
  6. Добавляя имя Антоний в качестве третьего элемента массива, то есть Антоний хранится в индексе 2.
  7. Печать некоторого текста и элемента, сохраненного с индексом 0 массива студентов на консоли. Students (0) помогает нам получить доступ к элементу по индексу 0 массива с именем Students.
  8. Печать некоторого текста и элемента, хранящегося в индексе 1 массива студентов на консоли. Студенты (1) помогают нам получить доступ к элементу в индексе 1 массива с именем студентов.
  9. Печать некоторого текста и элемента, хранящегося в индексе 2 массива студентов на консоли. Студенты (2) помогают нам получить доступ к элементу в индексе 2 массива с именем студентов.
  10. Пауза в окне консоли или ожидание действия пользователя для его закрытия.
  11. Конец подпроцедуры.
  12. Конец модуля.

Добавление новых элементов в массив

Это произойдет, только если у вас есть динамический массив. Если вы объявили размерный массив фиксированного размера, и он полон элементов массива, вы не можете добавлять в него новые элементы. В следующем примере показано, как добавить новые элементы в динамический массив:

Шаг 1) Начните с создания нового консольного приложения.

Шаг 2) Добавьте следующий код в приложение:

Module Module1
    Sub Main()

        Dim nums() As Integer

        ReDim nums(1)
        nums(0) = 12
        nums(1) = 23

        For x = 0 To nums.Length - 1
            Console.WriteLine("Initial array element: {0}", nums(x))
        Next

        ReDim Preserve nums(2)
        nums(2) = 35

        For x = 0 To nums.Length - 1
            Console.WriteLine("Final array element: {0}", nums(x))
        Next

        Console.ReadKey()
    End Sub

End Module

Шаг 3) Нажмите кнопку «Пуск» на панели инструментов, чтобы запустить код. Вы должны получить следующее окно:

Мы использовали следующий код:

Объяснение кода:

  1. Создание модуля с именем Module1.
  2. Создание основной подпроцедуры.
  3. Создание массива с именем nums для хранения целочисленных значений.
  4. Указание того, что в приведенном выше массиве будут храниться два элемента, то есть с индексами 0 и 1, в то же время оставляя место для изменения размера.
  5. Добавление элемента 12 в индекс 0 массива номеров.
  6. Добавление элемента 23 в индекс 1 массива nums.
  7. Использование цикла for для создания переменной x, чтобы помочь нам перебирать от первого до последнего элемента массива nums. Обратите внимание, что массив теперь имеет два элемента, 12 и 23.
  8. Печать некоторого текста и элементов массива на консоли.
  9. Завершение цикла for и переход к следующей части кода.
  10. Измените размеры массива, чтобы элементы могли иметь индексы от 0 до 2. Теперь он сможет хранить 3 элемента, а не 2. Ключевое слово Preserve помогает нам поддерживать текущие элементы массива, то есть 12 и 23.
  11. Добавление элемента 35 в индекс 2 массива. Массив теперь имеет три элемента: 12, 23 и 35.
  12. Использование цикла for для создания переменной x, чтобы помочь нам перебирать от первого до последнего элемента массива nums. Обратите внимание, что теперь массив состоит из трех элементов: 12, 23 и 35.
  13. Печать некоторого текста и элементов массива на консоли.
  14. Завершение цикла for и переход к следующей части кода.
  15. Приостановите окно консоли, ожидая действий пользователя, чтобы закрыть его.
  16. Конец подпроцедуры.
  17. Конец модуля.

Удаление массива

Рекомендуется стирать массив после того, как с ним покончено, в основном, когда вы имеете дело с динамическим массивом. Это поможет вам освободить место в памяти.

Чтобы удалить массив, вам нужно просто вызвать оператор Erase, а затем имя массива. Например:

Dim nums(1) As Integer
        nums(0) = 12
        nums(1) = 23
Erase nums

Мы объявили массив целых чисел с именем nums и добавили к нему два элемента. Оператор Erase nums удалит массив.

Функция разделения

Функция разбиения, предоставляемая Visual Basic .NET, помогает нам разбить строку на части и сохранить их в массиве. В следующем примере показано, как использовать эту функцию:

Шаг 1) Создайте новое консольное приложение.

Шаг 2) Добавьте следующий код в приложение:

Module Module1
    Sub Main()

        Dim myarray() As String
        Dim guru99 As String
        Dim x As Integer

        guru99 = "Welcome, to, Guru99"
        myarray = Split(guru99, ", ")

        For x = LBound(myarray) To UBound(myarray)

            Console.WriteLine(myarray(x))

        Next

        Console.ReadKey()
    End Sub

End Module

Шаг 3) Запустите код, нажав кнопку «Пуск» на панели инструментов. Вы должны получить следующее окно:

Мы использовали следующий код:

Объяснение кода:

  1. Создание модуля с именем Module1.
  2. Начало основной подпроцедуры.
  3. Создание массива с именем myarray для хранения строковых значений.
  4. Создание строковой переменной с именем guru99.
  5. Создание целочисленной переменной с именем x.
  6. Присвоение строки переменной guru99.
  7. Разбиваем строку выше на части и помещаем их в массив с именем myarray. «,» (Запятая) — это разделитель, поэтому функция разбиения будет использовать его для обозначения конца различных частей строки.
  8. Использование переменной x для перебора массива с именем myarray. LBound и UBound определяют нижние и верхние границы массива соответственно.
  9. Печать значений массива с именем myarray на консоли.
  10. Завершение цикла и

Функция соединения

Функция join помогает нам объединять несколько массивов в одну строку. Следующий пример демонстрирует это:

Шаг 1) Начните с создания нового консольного приложения.

Шаг 2) Добавьте следующий код в приложение:

Module Module1
    Sub Main()

        Dim students(0 To 2) As String

        students(0) = "John"

        students(1) = "Alice"

        students(2) = "Antony"

        Dim classmates As String


        classmates = Join(students, ", ")

        Console.WriteLine(classmates)

        Console.ReadKey()
    End Sub

End Module

Шаг 3) Запустите код, нажав кнопку «Пуск» на панели инструментов:

Мы использовали следующий код:

Объяснение кода:

  1. Создание модуля с именем Module1.
  2. Создание основной подпроцедуры.
  3. Создание массива с именем студентов для хранения 3 строковых значений.
  4. Добавление имени Джона в индекс 0 массива.
  5. Добавление имени Алиса в индекс 1 массива.
  6. Добавление имени Антония в индекс 2 массива.
  7. Определение переменной с именем одноклассников типа данных строки.
  8. Соединение всех элементов массива студентов и разделение их с помощью, (запятая). Результат этой операции будет присвоен переменной одноклассники.
  9. Печать содержимого переменной одноклассников на консоли.
  10. Приостановка окна консоли в ожидании действий пользователя по его закрытию.
  11. Завершение основной подпроцедуры.
  12. Завершение модуля.

Резюме

  • Массивы используются для хранения элементов данных, принадлежащих к одному типу данных.
  • Динамический массив позволяет пользователю изменять его размер, добавляя в него больше элементов. Вы используете команду ReDim для добавления элементов в существующий массив
  • Размер массива фиксированного размера не может быть изменен.
  • Элементы массива упорядочены с использованием индексов, причем первый элемент имеет индекс 0, а последний элемент — индекс n-1, где n — общее количество элементов массива.
  • Массивы могут быть удалены с помощью функции стирания
  • Вы можете использовать функции split и join для разделения или объединения строкового массива соответственно