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) |
GetEnumerator() |
Возвращает перечислитель, выполняющий перебор элементов в коллекции. |
GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
GetType() |
Возвращает объект Type для текущего экземпляра. (Унаследовано от Object) |
MemberwiseClone() |
Создает неполную копию текущего объекта Object. (Унаследовано от Object) |
Remove(Int32) |
Удаляет объект из коллекции |
Remove(String) |
Удаляет объект из коллекции |
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. |