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


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 Basic Collection 6.0, они не могут взаимодействовать в среде COM.

    Предостережение

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

Конструкторы

Имя Описание
Collection()

Создает и возвращает новый объект Visual Basic Collection .

Свойства

Имя Описание
Count

Возвращает количество элементов в коллекции.

Item[Int32]

Возвращает определенный Collection элемент объекта по позиции или по ключу.

Item[Object]

Возвращает определенный Collection элемент объекта по позиции или по ключу.

Item[String]

Возвращает определенный Collection элемент объекта по позиции или по ключу.

Методы

Имя Описание
Add(Object, String, Object, Object)

Добавляет элемент в Collection объект.

Clear()

Удаляет все элементы объекта Visual Basic Collection .

Contains(String)

Возвращает значение, указывающее, содержит ли объект Visual Basic Collection элемент с определенным ключом.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetEnumerator()

Возвращает перечислитель, который выполняет итерацию по коллекции.

GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()

Возвращает Type текущего экземпляра.

(Унаследовано от Object)
MemberwiseClone()

Создает неглубокую копию текущей Object.

(Унаследовано от Object)
Remove(Int32)

Удаляет элемент из Collection объекта.

Remove(String)

Удаляет элемент из Collection объекта.

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 на основе указанного типа.

Применяется к