Cómo: Crear una colección de objetos

Actualización: noviembre 2007

Como ocurre con cualquier objeto, declare una variable para contener el objeto y, a continuación, cree el objeto de la colección y asígnelo a la variable.

Para un objeto de colección, puede utilizar Clase de colección de Visual Basic o una clase de colección de .NET Framework. En particular, puede crear una colección genérica utilizando una de las clases en el espacio de nombres System.Collections.Generic. Una colección genérica es útil cuando todos los elementos de la colección tienen el mismo tipo de datos. Las colecciones genéricas cumplen el establecimiento inflexible de tipos al permitir agregar sólo el tipo de datos deseado. Para obtener más información, consulte Cómo: Definir colecciones con seguridad de tipos.

Cuando se crea el objeto de colección, puede agregar y quitar elementos y elementos de acceso de la colección.

A continuación, se muestran dos ejemplos sobre cómo crear colecciones. Cada colección contiene elementos String y asocia una clave String a cada elemento. Los dos primeros procedimientos crean una colección mediante la clase de colección de Visual Basic. Los dos últimos procedimientos crean una colección mediante una clase de colección genérica de .NET Framework.

Crear una colección mediante la clase de colección de Visual Basic

  1. Declare y cree una variable de Visual BasicCollection, tal como se muestra en el ejemplo siguiente.

    Dim sampleVisualBasicColl As New Microsoft.VisualBasic.Collection()
    

    La colección de sampleVisualBasicColl puede aceptar elementos de cualquier tipo de datos.

  2. Utilice Add (Método, objeto Collection) para agregar elementos a la colección. El ejemplo siguiente crea cuatro elementos String y los agrega a la colección. Crea un valor String único como clave para cada nuevo elemento y lo pasa al método Add.

    Dim item1, item2, item3, item4 As String
    item1 = "Items"
    item2 = "In"
    item3 = "A"
    item4 = "Collection"
    sampleVisualBasicColl.Add(item1, "firstkey")
    sampleVisualBasicColl.Add(item2, "secondkey")
    sampleVisualBasicColl.Add(item3, "thirdkey")
    sampleVisualBasicColl.Add(item4, "fourthkey")
    

    El argumento Key es opcional en una colección de Visual Basic.

  3. Si desea quitar un elemento de la colección, puede utilizar Remove (Método, objeto Collection) identificando el elemento por su índice posicional o por su clave opcional. Esto se ilustra en el siguiente ejemplo:

    ' Remove the first element of the Visual Basic collection.
    sampleVisualBasicColl.Remove(1)
    ' Remove the element with the key "secondkey".
    sampleVisualBasicColl.Remove("secondkey")
    

    Tenga en cuenta que al quitar un elemento de Visual BasicCollection, los valores del índice se numeran desde 1 hasta el valor de Count (Propiedad, objeto Collection).

Para utilizar For Each...Next para procesar los elementos de la colección de Visual Basic

  1. Declare una variable del tipo almacenado en la colección. Para obtener el ejemplo anterior, declare una variable de tipo String, tal como muestra el ejemplo siguiente.

    ' Insert code from the preceding example.
    Dim aString As String
    
  2. Utilice Instrucción For Each...Next (Visual Basic) para examinar cada elemento de la colección. El ejemplo siguiente busca una cadena determinada y la muestra si la encuentra.

    For Each aString in sampleVisualBasicColl
        If aString = "Collection" Then
            MsgBox(aString)
        End If
    Next aString
    

Para crear una colección mediante una clase de colección genérica

  1. Declare y cree una variable de .NET FrameworkSystem.Collections.Generic.Dictionary<TKey, TValue>, tal como se muestra en el ejemplo siguiente.

    Dim sampleGenericColl As New System.Collections.Generic.Dictionary(Of String, String)
    

    La variable sampleGenericColl contiene una colección de tipo seguro que sólo acepta elementos y claves de tipo String.

  2. Utilice el método Dictionary<TKey, TValue>.Add para agregar elementos a la colección. El ejemplo siguiente crea cuatro elementos String y los agrega a la colección. Crea un valor String único como clave para cada nuevo elemento y lo pasa al método Add.

    Dim item1, item2, item3, item4 As String
    item1 = "Items"
    item2 = "In"
    item3 = "A"
    item4 = "Collection"
    sampleGenericColl.Add("firstkey", item1)
    sampleGenericColl.Add("secondkey", item2)
    sampleGenericColl.Add("thirdkey", item3)
    sampleGenericColl.Add("fourthkey", item4)
    

    Se requiere el argumento Key en esta colección genérica.

  3. Para quitar un elemento de la colección, utilice el método IDictionary<TKey, TValue>.Remove. Debe proporcionar la clave para identificar el elemento que se va a quitar. Esto se ilustra en el siguiente ejemplo:

    If Not sampleGenericColl.Remove("thirdkey")
        ' Insert code to handle "thirdkey" not found in collection.
    End If
    

    Puede utilizar una instrucción For Each...Next para recorrer en iteración y procesar los elementos de una colección, como muestra el procedimiento siguiente.

Para utilizar For Each...Next para procesar los elementos de la colección genérica

  1. Declare una variable del tipo almacenado en la colección. Para obtener el ejemplo anterior, declare una variable de tipo String, tal como muestra el ejemplo siguiente.

    ' Insert code from the preceding example.
    Dim aPair As KeyValuePair(Of String, String)
    
  2. Utilice Instrucción For Each...Next (Visual Basic) para examinar cada elemento de la colección. El ejemplo siguiente busca una cadena determinada y la muestra si la encuentra.

    For Each aPair In sampleGenericColl
        If aPair.Value = "Items" Then
            MsgBox(aPair.Key & " -- " & aPair.Value)
        End If
    Next aPair
    

Vea también

Tareas

Cómo: Crear una matriz de objetos

Conceptos

Clase de colección de Visual Basic

Referencia

System.Collections

System.Collections.Generic

System.Collections.Specialized

Collection (Objeto, Visual Basic)