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


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]

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

Item[Object]

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

Item[String]

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

Методы

Add(Object, String, Object, Object)

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

Clear()

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

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)

Копирует элементы коллекции Collection в массив Array, начиная с указанного индекса массива 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.

Методы расширения

Cast<TResult>(IEnumerable)

Приводит элементы объекта IEnumerable к заданному типу.

OfType<TResult>(IEnumerable)

Выполняет фильтрацию элементов объекта IEnumerable по заданному типу.

AsParallel(IEnumerable)

Позволяет осуществлять параллельный запрос.

AsQueryable(IEnumerable)

Преобразовывает коллекцию IEnumerable в объект IQueryable.

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