miércoles, 4 de enero de 2017

Colecciones como alternativa a las matrices

Colecciones como alternativa a las matrices

Las matrices son muy útiles para crear y trabajar con un número fijo de objetos fuertemente tipados. Las colecciones proporcionan una manera más flexible de trabajar con grupos de objetos. A diferencia de las matrices, el grupo de objetos con el que trabaja puede aumentar y reducirse de manera dinámica a medida que cambian las necesidades de la aplicación.
Si necesita cambiar el tamaño de una matriz, debe usar la ReDim (Instrucción). Al hacerlo, Visual Basic crea una nueva matriz y libera la matriz anterior para su eliminación. Esto requiere tiempo de ejecución. Por lo tanto, si el número de elementos con los que trabaja cambia con frecuencia o si no puede predecir el número máximo de elementos que necesita, puede obtener un mejor rendimiento si usa una colección.
Para algunas colecciones, puede asignar una clave a cualquier objeto que incluya en la colección para, de este modo, recuperar rápidamente el objeto con la clave.
Si la colección contiene elementos de un solo tipo de datos, puede usar una de las clases del espacio de nombres System.Collections.Generic. Una colección genérica cumple la seguridad de tipos para que ningún otro tipo de datos se pueda agregar a ella. Cuando recupera un elemento de una colección genérica, no tiene que determinar su tipo de datos ni convertirlo.
Para más información sobre las colecciones de elementos, vea Colecciones.

Ejemplo

En el ejemplo siguiente se usa la clase genérica .NET FrameworkSystem.Collections.Generic.List<T> para crear una colección de listas de objetos Customer.
    ' Define the class for a customer.
    Public Class Customer
        Public Property Name As String
        ' Insert code for other members of customer structure.
    End Class

    ' Create a module-level collection that can hold 200 elements.
    Public CustomerList As New List(Of Customer)(200)

    ' Add a specified customer to the collection.
    Private Sub AddNewCustomer(ByVal newCust As Customer)
        ' Insert code to perform validity check on newCust.
        CustomerList.Add(newCust)
    End Sub

    ' Display the list of customers in the Debug window.
    Private Sub PrintCustomers()
        For Each cust As Customer In CustomerList
            Debug.WriteLine(cust)
        Next cust
    End Sub
La declaración de la colección CustomerFile especifica que solo puede contener elementos del tipo Customer. También proporciona una capacidad inicial de 200 elementos. El procedimiento AddNewCustomer comprueba la validez del nuevo elemento y, a continuación, lo agrega a la colección. El procedimiento PrintCustomers usa un bucle For Each para recorrer la colección y mostrar sus elementos.

No hay comentarios: