Collection Collection Collection Collection Class

Определение

Коллекция Collection в Visual Basic — это упорядоченный набор элементов, на который можно ссылаться как на единое целое.A Visual Basic Collection is an ordered set of items that can be referred to as a unit.

public ref class Collection sealed : System::Collections::IList, System::Runtime::Serialization::IDeserializationCallback, System::Runtime::Serialization::ISerializable
[System.Serializable]
public sealed class Collection : System.Collections.IList, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable
type Collection = class
    interface ICollection
    interface IList
    interface ISerializable
    interface IDeserializationCallback
Public NotInheritable Class Collection
Implements IDeserializationCallback, IList, ISerializable
Наследование
CollectionCollectionCollectionCollection
Атрибуты
Реализации

Примеры

В следующем примере создается Collection объект names и диалоговое окно, с помощью которого пользователь может добавлять объекты (имена) в коллекцию.The following example creates the Collection object names and a dialog box with which a user can add objects (names) to the collection. Затем он отображает имена в коллекции и, наконец, очищает коллекцию без удаления Collection самого объекта.It then displays the names in the collection, and finally empties the collection without disposing of the Collection object itself.

Чтобы увидеть, как это работает, выберите команду Добавить класс в меню проект и объявите открытую переменную instanceName с именем на уровне nameClass модуля (Type Public instanceName) для хранения имен каждого экземпляра.To see how this works, choose the Add Class command from the Project menu and declare a public variable called instanceName at the module level of nameClass (type Public instanceName) to hold the names of each instance. Оставьте имя nameClassпо умолчанию.Leave the default name as nameClass. Скопируйте и вставьте следующий код в раздел Общие другого модуля, а затем запустите его с помощью инструкции classNamer в другой процедуре.Copy and paste the following code into the General section of another module, and then start it with the statement classNamer in another procedure. (Этот пример работает только с ведущими приложениями, которые поддерживают классы.)(This example works only with host applications that support classes.)

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.Whenever possible, you should use the generic collections in the System.Collections.Generic namespace or the System.Collections.Concurrent namespace instead of a Visual Basic Collection. Дополнительные сведения см. в разделе коллекции.For more information, see Collections.

Объект Visual Basic Collection предоставляет удобный способ ссылки на связанную группу элементов в виде одного объекта.The Visual Basic Collection object provides a convenient way to refer to a related group of items as a single object. Элементы или элементыв коллекции должны быть связаны только тем фактом, что они существуют в коллекции.The items, or elements, in a collection need only be related by the fact that they exist in the collection. Элементы коллекции не должны совместно использовать один и тот же тип данных.Elements of a collection do not have to share the same data type.

Коллекцию можно создать таким же образом, как и другие объекты, как показано в следующем примере.You can create a collection the same way you create other objects, as the following example illustrates.

Dim coll As New Microsoft.VisualBasic.Collection()  

После создания коллекции можно выполнить любое из следующих действий.Once you have created a collection, you can do any of the following:

  • Добавьте элемент с помощью Add метода.Add an element with the Add method.

  • Удалите элемент с помощью Remove метода.Remove an element with the Remove method.

  • Удалите все элементы с помощью Clear метода.Remove all elements with the Clear method.

  • Определение количества элементов, содержащихся в коллекции, с Count помощью свойства.Find out how many elements the collection contains with the Count property.

  • Проверьте, имеется Contains ли в методе конкретный элемент.Check whether a specific element is present with the Contains method.

  • Возврат определенного элемента из коллекции со Item[String] свойством.Return a specific element from the collection with the Item[String] property.

  • Выполнить итерацию всей коллекции с помощью цикла For Each... Следующий оператор.Iterate through the entire collection with the For Each...Next Statement.

    Примечание

    Хотя объект Visual Basic Collection имеет функции, идентичные Collection объекту в Visual Basic 6,0, эти два не могут взаимодействовать в среде com.Although the Visual Basic Collection object has functionality identical to the Collection object in Visual Basic 6.0, the two cannot interoperate in a COM environment.

    Внимание!

    Итерация по Visual Basic Collection не является потокобезопасной процедурой.Iterating through a Visual Basic Collection is not a thread-safe procedure. Даже если коллекция синхронизирована, другие потоки по-прежнему могут изменить коллекцию, в результате чего перечислитель создаст исключение.Even if the collection is synchronized, other threads can still modify the collection, causing the enumerator to throw an exception. Чтобы гарантировать потокобезопасность при перечислении, заблокируйте коллекцию или перехватите исключения, полученные в результате изменений, внесенных другими потоками.To guarantee thread safety during enumeration, either lock the collection or catch the exceptions resulting from changes made by other threads. Дополнительные сведения о блокировке программного элемента см. в разделе оператор SyncLock.For more information on locking a programming element, see SyncLock Statement.

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

Collection() Collection() Collection() Collection()

Создает и возвращает новый объект Collection в Visual Basic.Creates and returns a new Visual Basic Collection object.

Свойства

Count Count Count Count

Получает число элементов в коллекции.Gets the number of elements in a collection.

Item[Int32] Item[Int32] Item[Int32] Item[Int32]

Получает определенный элемент объекта Collection по номеру позиции или ключу.Gets a specific element of a Collection object either by position or by key.

Item[Object] Item[Object] Item[Object] Item[Object]

Получает определенный элемент объекта Collection по номеру позиции или ключу.Gets a specific element of a Collection object either by position or by key.

Item[String] Item[String] Item[String] Item[String]

Получает определенный элемент объекта Collection по номеру позиции или ключу.Gets a specific element of a Collection object either by position or by key.

Методы

Add(Object, String, Object, Object) Add(Object, String, Object, Object) Add(Object, String, Object, Object) Add(Object, String, Object, Object)

Добавляет элемент в объект Collection.Adds an element to a Collection object.

Clear() Clear() Clear() Clear()

Удаляет все элементы объекта Collection Visual Basic.Deletes all elements of a Visual Basic Collection object.

Contains(String) Contains(String) Contains(String) Contains(String)

Возвращает значение, показывающее, содержит ли объект Visual Basic Collection элемент с указанным ключом.Returns a value that indicates whether a Visual Basic Collection object contains an element with a specific key.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Определяет, равен ли заданный объект текущему объекту.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetEnumerator() GetEnumerator() GetEnumerator() GetEnumerator()

Возвращает перечислитель, выполняющий перебор элементов в коллекции.Returns an enumerator that iterates through the collection.

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Служит хэш-функцией по умолчанию.Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

(Inherited from Object)
Remove(Int32) Remove(Int32) Remove(Int32) Remove(Int32)

Удаляет объект из коллекции Collection.Removes an element from a Collection object.

Remove(String) Remove(String) Remove(String) Remove(String)

Удаляет объект из коллекции Collection.Removes an element from a Collection object.

ToString() ToString() ToString() ToString()

Возвращает строку, представляющую текущий объект.Returns a string that represents the current object.

(Inherited from Object)

Явные реализации интерфейса

ICollection.CopyTo(Array, Int32) ICollection.CopyTo(Array, Int32) ICollection.CopyTo(Array, Int32) ICollection.CopyTo(Array, Int32)

Копирует элементы коллекции Collection в массив Array, начиная с указанного индекса массива Array.Copies the elements of the Collection to an Array, starting at a particular Array index.

ICollection.Count ICollection.Count ICollection.Count ICollection.Count

Возвращает число элементов в этой коллекции.Gets the number of items in this collection.

ICollection.IsSynchronized ICollection.IsSynchronized ICollection.IsSynchronized ICollection.IsSynchronized

Получает значение, указывающее, является ли доступ к объекту Collection синхронизированным (потокобезопасным).Gets a value that indicates whether access to the Collection object is synchronized (thread-safe).

ICollection.SyncRoot ICollection.SyncRoot ICollection.SyncRoot ICollection.SyncRoot

Возвращает объект, который позволяет синхронизировать доступ к объекту Collection.Gets an object that can be used to synchronize access to the Collection object.

IDeserializationCallback.OnDeserialization(Object) IDeserializationCallback.OnDeserialization(Object) IDeserializationCallback.OnDeserialization(Object) IDeserializationCallback.OnDeserialization(Object)

Выполняется после полностью десериализации графа объекта Collection.Runs after the entire Collection object graph has been deserialized.

IEnumerable.GetEnumerator() IEnumerable.GetEnumerator() IEnumerable.GetEnumerator() IEnumerable.GetEnumerator()

Получает перечислитель, выполняющий итерацию элементов в коллекции.Gets an enumerator that iterates through the collection.

IList.Add(Object) IList.Add(Object) IList.Add(Object) IList.Add(Object)
IList.Clear() IList.Clear() IList.Clear() IList.Clear()

Удаляет все элементы из объекта Collection.Removes all items from the Collection object.

IList.Contains(Object) IList.Contains(Object) IList.Contains(Object) IList.Contains(Object)

Определяет, содержит ли объект Collection указанное значение.Determines whether the Collection object contains a specific value.

IList.IndexOf(Object) IList.IndexOf(Object) IList.IndexOf(Object) IList.IndexOf(Object)

Определяет индекс конкретного элемента в объекте Collection.Determines the index of a specific item in the Collection object.

IList.Insert(Int32, Object) IList.Insert(Int32, Object) IList.Insert(Int32, Object) IList.Insert(Int32, Object)

Вставляет элемент в объект Collection по указанному индексу.Inserts an item to the Collection object at the specified index.

IList.IsFixedSize IList.IsFixedSize IList.IsFixedSize IList.IsFixedSize

Получает значение, указывающее, имеет ли объект Collection фиксированный размер.Gets a value that indicates whether the Collection object has a fixed size.

IList.IsReadOnly IList.IsReadOnly IList.IsReadOnly IList.IsReadOnly

Получает значение, которое указывает, доступен ли объект Collection только для чтения.Gets a value that indicates whether the Collection object is.

IList.Item[Int32] IList.Item[Int32] IList.Item[Int32] IList.Item[Int32]

Возвращает или задает элемент по указанному индексу.Gets or sets the element at the specified index.

IList.Remove(Object) IList.Remove(Object) IList.Remove(Object) IList.Remove(Object)

Удаляет первое вхождение определенного объекта из объекта Collection.Removes the first occurrence of a specific object from the Collection object.

IList.RemoveAt(Int32) IList.RemoveAt(Int32) IList.RemoveAt(Int32) IList.RemoveAt(Int32)

Удаляет элемент объекта Collection по заданному индексу.Removes the Collection object item at the specified index.

ISerializable.GetObjectData(SerializationInfo, StreamingContext) ISerializable.GetObjectData(SerializationInfo, StreamingContext) ISerializable.GetObjectData(SerializationInfo, StreamingContext) ISerializable.GetObjectData(SerializationInfo, StreamingContext)

Возвращает данные, необходимые для сериализации объекта Collection.Returns the data needed to serialize the Collection object.

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

Cast<TResult>(IEnumerable) Cast<TResult>(IEnumerable) Cast<TResult>(IEnumerable) Cast<TResult>(IEnumerable)

Приводит элементы объекта IEnumerable к заданному типу.Casts the elements of an IEnumerable to the specified type.

OfType<TResult>(IEnumerable) OfType<TResult>(IEnumerable) OfType<TResult>(IEnumerable) OfType<TResult>(IEnumerable)

Выполняет фильтрацию элементов объекта IEnumerable по заданному типу.Filters the elements of an IEnumerable based on a specified type.

AsParallel(IEnumerable) AsParallel(IEnumerable) AsParallel(IEnumerable) AsParallel(IEnumerable)

Позволяет осуществлять параллельный запрос.Enables parallelization of a query.

AsQueryable(IEnumerable) AsQueryable(IEnumerable) AsQueryable(IEnumerable) AsQueryable(IEnumerable)

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

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