Объект 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).
Примечание. Хотя объект Collection Visual Basic имеет функциональные возможности, идентичные объекту Collection в Visual Basic 6.0, последний не может взаимодействовать в среде COM.
Внимание! Проход по 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)