Collection Класс
В этой статье
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Коллекция Collection
в Visual Basic — это упорядоченный набор элементов, на который можно ссылаться как на единое целое.
public ref class Collection sealed : System::Collections::IList
public ref class Collection sealed : System::Collections::IList, System::Runtime::Serialization::IDeserializationCallback, System::Runtime::Serialization::ISerializable
public sealed class Collection : System.Collections.IList
[System.Serializable]
public sealed class Collection : System.Collections.IList, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable
type Collection = class
interface ICollection
interface IEnumerable
interface IList
type Collection = class
interface ICollection
interface IList
[<System.Serializable>]
type Collection = class
interface ICollection
interface IList
interface ISerializable
interface IDeserializationCallback
Public NotInheritable Class Collection
Implements IList
Public NotInheritable Class Collection
Implements IDeserializationCallback, IList, ISerializable
- Наследование
-
Collection
- Атрибуты
- Реализации
В следующем примере создается Collection
объект names
и диалоговое окно, с помощью которого пользователь может добавлять объекты (имена) в коллекцию. Затем он отображает имена в коллекции и, наконец, очищает коллекцию, не удаляя 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
Примечание
По возможности следует использовать универсальные коллекции в System.Collections.Generic пространстве имен или System.Collections.Concurrent пространстве имен вместо Visual Basic Collection
. Дополнительные сведения см. в разделе Коллекции — C# или Коллекции — Visual Basic.
Объект Visual Basic Collection
предоставляет удобный способ ссылаться на связанную группу элементов как на один объект. Элементы в коллекции должны быть связаны только тем фактом, что они существуют в коллекции. Элементы коллекции не должны совместно использовать один и тот же тип данных.
Вы можете создать коллекцию так же, как и другие объекты, как показано в следующем примере.
Dim coll As New Microsoft.VisualBasic.Collection()
После создания коллекции можно выполнить любое из следующих действий:
Добавьте элемент с Add помощью метода .
Удалите элемент с Remove помощью метода .
Удалите все элементы с Clear помощью метода .
Узнайте, сколько элементов содержит коллекция с Count помощью свойства .
Проверьте, присутствует ли определенный элемент в методе Contains .
Возвращает определенный элемент из коллекции со свойством Item[] .
Выполните итерацию всей коллекции с помощью элемента For Each... Следующий оператор.
Примечание
Хотя функциональность объекта Visual Basic
Collection
идентичнаCollection
функции объекта в Visual Basic 6.0, они не могут взаимодействовать в среде COM.Внимание!
Итерации по Visual Basic
Collection
не являются потокобезопасной процедурой. Даже если коллекция синхронизирована, другие потоки по-прежнему могут изменять коллекцию, в результате чего перечислитель создает исключение. Чтобы гарантировать потокобезопасность во время перечисления, заблокируйте коллекцию или перехватите исключения, возникающие в результате изменений, внесенных другими потоками. Дополнительные сведения о блокировке элемента программирования см. в разделе SyncLock Statement.
Collection() |
Создает и возвращает новый объект Collection в Visual Basic. |
Count |
Получает число элементов в коллекции. |
Item[Int32] |
Получает определенный элемент объекта |
Item[Object] |
Получает определенный элемент объекта |
Item[String] |
Получает определенный элемент объекта |
Add(Object, String, Object, Object) |
Добавляет элемент в объект |
Clear() |
Удаляет все элементы объекта |
Contains(String) |
Возвращает значение, показывающее, содержит ли объект Visual Basic |
Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
Get |
Возвращает перечислитель, выполняющий перебор элементов в коллекции. |
Get |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
Get |
Возвращает объект Type для текущего экземпляра. (Унаследовано от Object) |
Memberwise |
Создает неполную копию текущего объекта Object. (Унаследовано от Object) |
Remove(Int32) |
Удаляет объект из коллекции |
Remove(String) |
Удаляет объект из коллекции |
To |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |
ICollection. |
Копирует элементы коллекции Collection в массив Array, начиная с указанного индекса массива Array. |
ICollection. |
Возвращает число элементов в этой коллекции. |
ICollection. |
Получает значение, указывающее, является ли доступ к объекту Collection синхронизированным (потокобезопасным). |
ICollection. |
Возвращает объект, который позволяет синхронизировать доступ к объекту Collection. |
IDeserialization |
Выполняется после полностью десериализации графа объекта Collection. |
IEnumerable. |
Получает перечислитель, выполняющий итерацию элементов в коллекции. |
IList. |
Добавляет элемент в коллекцию. |
IList. |
Удаляет все элементы из объекта Collection. |
IList. |
Определяет, содержит ли объект Collection указанное значение. |
IList. |
Определяет индекс конкретного элемента в объекте Collection. |
IList. |
Вставляет элемент в объект Collection по указанному индексу. |
IList. |
Возвращает значение, указывающее, имеет ли объект Collection фиксированный размер. |
IList. |
Получает значение, которое указывает, доступен ли объект Collection только для чтения. |
IList. |
Возвращает или задает элемент по указанному индексу. |
IList. |
Удаляет первое вхождение определенного объекта из объекта Collection. |
IList. |
Удаляет элемент объекта Collection по заданному индексу. |
ISerializable. |
Возвращает данные, необходимые для сериализации объекта Collection. |
Cast<TResult>(IEnumerable) |
Приводит элементы объекта IEnumerable к заданному типу. |
Of |
Выполняет фильтрацию элементов объекта IEnumerable по заданному типу. |
As |
Позволяет осуществлять параллельный запрос. |
As |
Преобразовывает коллекцию IEnumerable в объект IQueryable. |
Продукт | Версии |
---|---|
.NET | Core 3.0, Core 3.1, 5, 6, 7, 8, 9 |
.NET Framework | 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |