Collection (Objeto, Visual Basic)

Actualización: noviembre 2007

Un objeto Collection de Visual Basic es un conjunto ordenado de elementos a los que se puede hacer referencia como unidad.

Comentarios

Con el objeto Collection de Visual Basic se puede ver de manera sencilla a un grupo relacionado de elementos como si se tratase de un solo objeto. Los elementos de una colección únicamente necesitan estar relacionados por el hecho de estar ubicados en la colección. Los elementos de una colección no tienen que compartir el mismo tipo de datos.

Puede crear una colección de la misma manera que crea otros objetos, como se ilustra el ejemplo siguiente.

Dim coll As New Microsoft.VisualBasic.Collection()

Una vez que se ha creado una colección, puede realizar una de las operaciones siguientes:

  • Agregar un elemento que use el método Add.

  • Quitar un elemento que use el método Remove.

  • Quitar todos los elementos que usen el método Clear.

  • Averiguar cuántos elementos contiene la colección con la propiedad Count.

  • Comprobar si un determinado elemento está presente con el método Contains.

  • Devolver un determinado elemento de la colección con la propiedad Item.

  • Recorrer en iteración la colección completa con Instrucción For Each...Next (Visual Basic).

    Nota:

    Aunque el objeto Collection de Visual Basic tiene una funcionalidad idéntica al objeto Collection de Visual Basic 6.0, estos objetos no pueden interoperar en un entorno COM.

    Precaución:

    Recorrer en iteración un objeto Collection de Visual Basic no es un procedimiento seguro para subprocesos. Incluso si la colección está sincronizada, otros subprocesos podrían modificar la colección. Esto hace que el enumerador produzca una excepción. Para garantizar la seguridad de subprocesos durante la enumeración, se debe bloquear la colección o detectar las excepciones que resultan de los cambios realizados por otros subprocesos. Para obtener más información sobre cómo bloquear un elemento de programación, vea SyncLock (Instrucción).

Ejemplo

En el ejemplo siguiente se crea el objeto Collectionnames y un cuadro de diálogo con el que un usuario puede agregar los objetos (nombres) a la colección. A continuación, se muestran los nombres de la colección y, por último, se vacía la colección sin desechar el propio objeto Collection.

Para ver cómo funciona, seleccione el comando Agregar clase del menú Proyecto y declare una variable pública denominada instanceName en el nivel de módulo de nameClass (escriba Public instanceName) para almacenar los nombres de cada instancia. Mantenga el nombre predeterminado nameClass. Copie y pegue el código siguiente en la sección General de otro módulo y, a continuación, inícielo con la instrucción classNamer en otro procedimiento. (Este ejemplo sólo funciona con aplicaciones host que admitan clases).

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

Requisitos

Espacio de nombres:Microsoft.VisualBasic

**Ensamblado:**Visual Basic Runtime Library (en Microsoft.VisualBasic.dll)

Vea también

Referencia

Collection (Miembros del objeto)

GetEnumerator (Método, objeto Collection)