Collection Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Visual Basic Collection — это упорядоченный набор элементов, которые можно называть единицей.
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объекту в Visual BasicCollection6.0, они не могут взаимодействовать в среде COM.Предостережение
Итерацию через Visual Basic
Collectionне является потокобезопасной процедурой. Даже если коллекция синхронизирована, другие потоки по-прежнему могут изменять коллекцию, что приводит к возникновению исключения перечислителем. Чтобы гарантировать безопасность потоков во время перечисления, заблокируйте коллекцию или перехватите исключения из-за изменений, внесенных другими потоками. Дополнительные сведения о блокировке элемента программирования см. в инструкции SyncLock.
Конструкторы
| Имя | Описание |
|---|---|
| Collection() |
Создает и возвращает новый объект Visual Basic Collection . |
Свойства
| Имя | Описание |
|---|---|
| Count |
Возвращает количество элементов в коллекции. |
| Item[Int32] |
Возвращает определенный |
| Item[Object] |
Возвращает определенный |
| Item[String] |
Возвращает определенный |
Методы
| Имя | Описание |
|---|---|
| Add(Object, String, Object, Object) |
Добавляет элемент в |
| Clear() |
Удаляет все элементы объекта Visual Basic |
| Contains(String) |
Возвращает значение, указывающее, содержит ли объект Visual Basic |
| Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
| GetEnumerator() |
Возвращает перечислитель, который выполняет итерацию по коллекции. |
| GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
| GetType() |
Возвращает Type текущего экземпляра. (Унаследовано от Object) |
| MemberwiseClone() |
Создает неглубокую копию текущей Object. (Унаследовано от Object) |
| Remove(Int32) |
Удаляет элемент из |
| Remove(String) |
Удаляет элемент из |
| ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |
Явные реализации интерфейса
| Имя | Описание |
|---|---|
| ICollection.CopyTo(Array, Int32) |
Копирует элементы объекта CollectionArrayв определенный индекс, начиная с определенного Array индекса. |
| ICollection.Count |
Возвращает количество элементов в этой коллекции. |
| ICollection.IsSynchronized |
Возвращает значение, указывающее, синхронизирован ли доступ к Collection объекту (потокобезопасный). |
| ICollection.SyncRoot |
Возвращает объект, который можно использовать для синхронизации доступа к объекту Collection . |
| IDeserializationCallback.OnDeserialization(Object) |
Выполняется после десериализации всего Collection графа объектов. |
| IEnumerable.GetEnumerator() |
Возвращает перечислитель, который выполняет итерацию по коллекции. |
| IList.Add(Object) |
Добавляет элемент в коллекцию. |
| IList.Clear() |
Удаляет все элементы из Collection объекта. |
| IList.Contains(Object) |
Определяет, содержит ли Collection объект определенное значение. |
| IList.IndexOf(Object) |
Определяет индекс определенного элемента в объекте Collection . |
| IList.Insert(Int32, Object) |
Вставляет элемент в Collection объект по указанному индексу. |
| IList.IsFixedSize |
Возвращает значение, указывающее, имеет ли Collection объект фиксированный размер. |
| IList.IsReadOnly |
Возвращает значение, указывающее, является ли Collection объект. |
| IList.Item[Int32] |
Возвращает или задает элемент по указанному индексу. |
| IList.Remove(Object) |
Удаляет первое вхождение определенного объекта из Collection объекта. |
| IList.RemoveAt(Int32) |
Удаляет Collection элемент объекта по указанному индексу. |
| ISerializable.GetObjectData(SerializationInfo, StreamingContext) |
Возвращает данные, необходимые для сериализации Collection объекта. |
Методы расширения
| Имя | Описание |
|---|---|
| AsParallel(IEnumerable) |
Включает параллелизацию запроса. |
| AsQueryable(IEnumerable) |
Преобразует IEnumerable в IQueryable. |
| Cast<TResult>(IEnumerable) |
Приведение элементов IEnumerable к указанному типу. |
| OfType<TResult>(IEnumerable) |
Фильтрует элементы IEnumerable на основе указанного типа. |