Поделиться через


Объект Collection (Visual Basic)

Обновлен: Ноябрь 2007

Collection в Visual Basic — это упорядоченный набор элементов, на который можно ссылаться как на одно целое.

Заметки

Объект Collection в Visual Basic предоставляет удобный способ просмотра группы связанных элементов как единого объекта. Элементы или элементы в коллекции должны быть связаны только тем фактом, что они находятся в коллекции. Элементы коллекции не обязаны иметь один и тот же тип данных.

Можно создать коллекцию тем же образом, каким вы создаете другие объекты, как показано в следующем примере.

Dim coll As New Microsoft.VisualBasic.Collection()

После создания коллекции можно выполнить одно из следующих действий:

  • Добавить элемент, используя Метод Add.

  • Удалить элемент, используя метод Remove.

  • Удалить все элементы, используя метод Clear.

  • Узнать количество элементов содержащихся в коллекции, используя свойство Count.

  • Проверить, присутствует ли определенный элемент, используя метод Contains.

  • Получить определенный элемент из коллекции, используя свойство Item.

  • Проход по завершенной коллекции с Инструкция For Each... Next (Visual Basic).

    yb7y698k.alert_note(ru-ru,VS.90).gifПримечание.

    Хотя объект Collection Visual Basic имеет функциональные возможности, идентичные объекту Collection в Visual Basic 6.0, последний не может взаимодействовать в среде COM.

    yb7y698k.alert_caution(ru-ru,VS.90).gifВнимание!

    Проход по Collection в Visual Basic не является потокобезопасной процедурой. Даже если коллекция является синхронизированной, другие потоки могут по-прежнему изменять коллекцию. Это заставляет счётчик создавать исключение. Чтобы гарантировать потокобезопасность при использовании перечислителя, заблокируйте коллекцию или перехватите исключения, возникшие из-за сделанных другими потоками изменений. Дополнительные сведения о блокировках элемента программирования содержатся в разделе Оператор SyncLock.

Пример

В следующем примере создается объект Collectionnames и диалоговое окно, с помощью которого пользователь может добавлять объекты (имена) в коллекцию. Затем он отображает имена в коллекции и наконец удаляет коллекцию, не затрагивая сам объект Collection.

Чтобы посмотреть, как это работает, выберите команду Добавление класса из меню Проект и объявите открытую переменную с именем instanceName на уровне модуля nameClass (тип Public instanceName) для хранения имени каждого экземпляра. Оставьте неизменным используемое по умолчанию имя nameClass В раздел Общие другого модуля скопируйте и вставьте следующий код, который затем запустите с помощью оператора classNamer в другой процедуре. (Это пример работает только с приложениями хоста, поддерживающими классы).

Public Class nameClass
    Public instanceName As String
End Class
Sub classNamer()
    ' Create a Visual Basic Collection object.
    Dim names As New Microsoft.VisualBasic.Collection()
    Dim key As Integer
    Dim msg As String
    Dim name As String
    Dim nameList As String = ""
    ' 1. Get names from the user to add to the collection.
    Do
        Dim inst As New nameClass()
        key += 1
        msg = "Please enter a name for this object." & vbCrLf _
            & "Press Cancel to see names in collection."
        name = InputBox(msg, "Name the Collection items")
        inst.instanceName = name
        ' If user entered a name, add it to the collection.
        If inst.instanceName <> "" Then
            names.Add(inst, CStr(key))
        End If
    Loop Until name = ""
    ' 2. Create and display a list of names from the collection.
    For Each oneInst As nameClass In names
        nameList &= oneInst.instanceName & vbCrLf
    Next oneInst
    MsgBox(nameList, , "Instance Names in names Collection")
    ' 3. Remove elements from the collection without disposing of the collection.
    For count As Integer = 1 To names.Count
        names.Remove(1)
        ' Since Visual Basic collections are reindexed automatically, 
        ' remove the first member on each iteration.
    Next count
End Sub

Требования

Пространство имен: Microsoft.VisualBasic

**Сборка:**Visual Basic (библиотека времени выполнения, в Microsoft.VisualBasic.dll)

См. также

Ссылки

Члены объекта коллекции

Метод GetEnumerator (Объект Collection)