Collection Classe

Definição

Um Visual Basic Collection é um conjunto ordenado de itens que podem ser referenciados como uma unidade.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
Herança
Collection
Atributos
Implementações

Exemplos

O exemplo a seguir cria Collection o names objeto e uma caixa de diálogo com a qual um usuário pode adicionar objetos (nomes) à coleção.The following example creates the Collection object names and a dialog box with which a user can add objects (names) to the collection. Em seguida, ele exibe os nomes na coleção e, por fim, esvazia a coleção sem descartar o Collection objeto em si.It then displays the names in the collection, and finally empties the collection without disposing of the Collection object itself.

Para ver como isso funciona, escolha o comando Adicionar classe no menu projeto e declare uma variável pública chamada instanceName no nível de módulo de nameClass (tipo Public instanceName) para manter os nomes de cada instância.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. Deixe o nome padrão como nameClass.Leave the default name as nameClass. Copie e cole o código a seguir na seção geral de outro módulo e inicie-o com a instrução classNamer em outro procedimento.Copy and paste the following code into the General section of another module, and then start it with the statement classNamer in another procedure. (Este exemplo funciona apenas com aplicativos host que dão suporte a classes.)(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

Comentários

Observação

Sempre que possível, você deve usar as coleções genéricas no System.Collections.Generic namespace ou no System.Collections.Concurrent namespace em vez de um CollectionVisual Basic.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. Para obter mais informações, consulte coleções.For more information, see Collections.

O objeto Collection Visual Basic fornece uma maneira conveniente de se referir a um grupo de itens relacionado como um único objeto.The Visual Basic Collection object provides a convenient way to refer to a related group of items as a single object. Os itens, ou elementos, em uma coleção precisam apenas ser relacionados pelo fato de que eles existem na coleção.The items, or elements, in a collection need only be related by the fact that they exist in the collection. Os elementos de uma coleção não precisam compartilhar o mesmo tipo de dados.Elements of a collection do not have to share the same data type.

Você pode criar uma coleção da mesma maneira que cria outros objetos, como ilustra o exemplo a seguir.You can create a collection the same way you create other objects, as the following example illustrates.

Dim coll As New Microsoft.VisualBasic.Collection()  

Depois de criar uma coleção, você pode fazer o seguinte:Once you have created a collection, you can do any of the following:

  • Adicione um elemento com o Add método.Add an element with the Add method.

  • Remova um elemento com o Remove método.Remove an element with the Remove method.

  • Remova todos os elementos com Clear o método.Remove all elements with the Clear method.

  • Descubra quantos elementos a coleção contém com a Count propriedade.Find out how many elements the collection contains with the Count property.

  • Verifique se um elemento específico está presente com o Contains método.Check whether a specific element is present with the Contains method.

  • Retorna um elemento específico da coleção com a Item[String] propriedade.Return a specific element from the collection with the Item[String] property.

  • Iterar em toda a coleção com o para cada... Próxima instrução.Iterate through the entire collection with the For Each...Next Statement.

    Observação

    Embora o objeto Collection Visual Basic tenha funcionalidade idêntica Collection ao objeto no Visual Basic 6,0, os dois não podem interoperar em um ambiente 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.

    Cuidado

    A iteração por Collection meio de um Visual Basic não é um procedimento de thread-safe.Iterating through a Visual Basic Collection is not a thread-safe procedure. Mesmo que a coleção seja sincronizada, outros threads ainda poderão modificar a coleção, fazendo com que o enumerador gere uma exceção.Even if the collection is synchronized, other threads can still modify the collection, causing the enumerator to throw an exception. Para garantir a segurança do thread durante a enumeração, bloqueie a coleção ou Capture as exceções resultantes de alterações feitas por outros threads.To guarantee thread safety during enumeration, either lock the collection or catch the exceptions resulting from changes made by other threads. Para obter mais informações sobre como bloquear um elemento de programação, consulte instrução SyncLock.For more information on locking a programming element, see SyncLock Statement.

Construtores

Collection()

Cria e retorna um novo objeto Collection do Visual Basic.Creates and returns a new Visual Basic Collection object.

Propriedades

Count

Obtém o número de elementos em uma coleção.Gets the number of elements in a collection.

Item[Int32]

Obtém um elemento específico de um objeto Collection por posição ou por chave.Gets a specific element of a Collection object either by position or by key.

Item[Object]

Obtém um elemento específico de um objeto Collection por posição ou por chave.Gets a specific element of a Collection object either by position or by key.

Item[String]

Obtém um elemento específico de um objeto Collection por posição ou por chave.Gets a specific element of a Collection object either by position or by key.

Métodos

Add(Object, String, Object, Object)

Adiciona um elemento a um objeto Collection.Adds an element to a Collection object.

Clear()

Exclui todos os elementos de um objeto Collection do Visual Basic.Deletes all elements of a Visual Basic Collection object.

Contains(String)

Um valor que indica se um objeto Collection do Visual Basic contém um elemento com uma chave específica.Returns a value that indicates whether a Visual Basic Collection object contains an element with a specific key.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.Determines whether the specified object is equal to the current object.

(Herdado de Object)
GetEnumerator()

Retorna um enumerador que itera pela coleção.Returns an enumerator that iterates through the collection.

GetHashCode()

Serve como a função de hash padrão.Serves as the default hash function.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.Gets the Type of the current instance.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do Object atual.Creates a shallow copy of the current Object.

(Herdado de Object)
Remove(Int32)

Remove um elemento de um objeto Collection.Removes an element from a Collection object.

Remove(String)

Remove um elemento de um objeto Collection.Removes an element from a Collection object.

ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.Returns a string that represents the current object.

(Herdado de Object)

Implantações explícitas de interface

ICollection.CopyTo(Array, Int32)

Copia os elementos do Collection para um Array, começando em um determinado índice Array.Copies the elements of the Collection to an Array, starting at a particular Array index.

ICollection.Count

Obtém o número de itens nesta coleção.Gets the number of items in this collection.

ICollection.IsSynchronized

Obtém um valor que indica se o acesso ao objeto Collection é sincronizado (thread-safe).Gets a value that indicates whether access to the Collection object is synchronized (thread-safe).

ICollection.SyncRoot

Obtém um objeto que pode ser usado para sincronizar o acesso ao objeto Collection.Gets an object that can be used to synchronize access to the Collection object.

IDeserializationCallback.OnDeserialization(Object)

Será executado quando o todo o grafo do objeto Collection tiver sido desserializado.Runs after the entire Collection object graph has been deserialized.

IEnumerable.GetEnumerator()

Obtém um enumerador que itera por meio da coleção.Gets an enumerator that iterates through the collection.

IList.Add(Object)
IList.Clear()

Remove todos os itens do objeto Collection.Removes all items from the Collection object.

IList.Contains(Object)

Determina se um objeto Collection contém um valor específico.Determines whether the Collection object contains a specific value.

IList.IndexOf(Object)

Determina o índice de um item específico no objeto Collection.Determines the index of a specific item in the Collection object.

IList.Insert(Int32, Object)

Insere um item no objeto Collection no índice especificado.Inserts an item to the Collection object at the specified index.

IList.IsFixedSize

Obtém um valor que indica se o objeto Collection tem um tamanho fixo.Gets a value that indicates whether the Collection object has a fixed size.

IList.IsReadOnly

Obtém um valor que indica se é o objeto Collection.Gets a value that indicates whether the Collection object is.

IList.Item[Int32]

Obtém ou define o elemento no índice especificado.Gets or sets the element at the specified index.

IList.Remove(Object)

Remove a primeira ocorrência de um objeto específico do objeto Collection.Removes the first occurrence of a specific object from the Collection object.

IList.RemoveAt(Int32)

Remove o item de objeto Collection no índice especificado.Removes the Collection object item at the specified index.

ISerializable.GetObjectData(SerializationInfo, StreamingContext)

Retorna os dados necessários para serializar o objeto Collection.Returns the data needed to serialize the Collection object.

Métodos de Extensão

Cast<TResult>(IEnumerable)

Converte os elementos de um IEnumerable para o tipo especificado.Casts the elements of an IEnumerable to the specified type.

OfType<TResult>(IEnumerable)

Filtra os elementos de um IEnumerable com base em um tipo especificado.Filters the elements of an IEnumerable based on a specified type.

AsParallel(IEnumerable)

Habilita a paralelização de uma consulta.Enables parallelization of a query.

AsQueryable(IEnumerable)

Converte um IEnumerable em um IQueryable.Converts an IEnumerable to an IQueryable.

Aplica-se a