Professional Documents
Culture Documents
En este tema
Elementos de una matriz en una matriz sencilla
Creacin de una matriz
Almacenamiento de valores en una matriz
Llenado de una matriz con valores iniciales
o
Tambin puede usar una clusula New para proporcionar el tamao de la matriz cuando
se crea, como se muestra en el ejemplo siguiente.
VB
cargoWeights = New Double(10) {}
atmospherePressures = New Short(2, 2, 4, 10) {}
inquiriesByYearMonthDay = New Byte(20)()() {}
Si tiene una matriz existente, puede volver a definir su tamao mediante la
instruccin Redim. Puede especificar que la instruccin Redim debe mantener los valores
de la matriz o puede especificar que cree una matriz vaca. El ejemplo siguiente
muestra los diferentes usos de la instruccin Redim para modificar el tamao de una
matriz existente.
VB
' Assign a new array size and retain the current element values.
ReDim Preserve cargoWeights(20)
' Assign a new array size and retain only the first five element
values.
Nota
Matrices escalonadas
Una matriz que contiene otras matrices como elementos se conoce como matriz de
matrices o matriz escalonada. Una matriz escalonada y cada elemento de una matriz
escalonada pueden tener una o ms dimensiones. A veces la estructura de datos de la
aplicacin es bidimensional pero no rectangular.
El ejemplo siguiente tiene una matriz de meses, siendo cada elemento una matriz de
das. Puesto que los distintos meses tienen un nmero diferente de das, los elementos
no forman una matriz bidimensional rectangular. Por lo tanto, se usa una matriz
escalonada en lugar de una matriz multidimensional.
VB
' Declare the jagged array.
' The New clause sets the array variable to a 12-element
' array. Each element is an array of Double elements.
Dim sales()() As Double = New Double(11)() {}
' Set each element of the sales array to a Double
' array of the appropriate size.
For month As Integer = 0 To 11
Dim days As Integer =
DateTime.DaysInMonth(Year(Now), month + 1)
sales(month) = New Double(days - 1) {}
Next month
' Store values in each element.
For month As Integer = 0 To 11
Dim upper = sales(month).GetUpperBound(0)
For day = 0 To upper
sales(month)(day) = (month * 100) + day
Next
Next
Tamao de la matriz
El tamao de una matriz es el producto de las longitudes de todas sus dimensiones.
Representa el nmero total de elementos contenidos actualmente en la matriz.
En el ejemplo siguiente se declara una matriz tridimensional.
Dim prices(3, 4, 5) As Long
Longitud de
la dimensin
Lmites de
longitud
Tamao y
tamao de
elemento
Consumo de
memoria
Las matrices son muy tiles para crear y trabajar con un nmero fijo de objetos
fuertemente tipados. Las colecciones proporcionan una manera ms 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 dinmica a medida que cambian
las necesidades de la aplicacin.
Si necesita cambiar el tamao de una matriz, debe usar la ReDim (Instruccin). Al
hacerlo, Visual Basic crea una nueva matriz y libera la matriz anterior para su
eliminacin. Esto requiere tiempo de ejecucin. Por lo tanto, si el nmero de elementos
con los que trabaja cambia con frecuencia o si no puede predecir el nmero mximo de
elementos que necesita, puede obtener un mejor rendimiento si usa una coleccin.
Para algunas colecciones, puede asignar una clave a cualquier objeto que incluya en la
coleccin para, de este modo, recuperar rpidamente el objeto con la clave.
Si la coleccin contiene elementos de un solo tipo de datos, puede usar una de las
clases del espacio de nombres System.Collections.Generic. Una coleccin genrica
cumple la seguridad de tipos para que ningn otro tipo de datos se pueda agregar a
ella. Cuando recupera un elemento de una coleccin genrica, no tiene que determinar
su tipo de datos ni convertirlo.
Para ms informacin sobre las colecciones de elementos, vea Colecciones.
Ejemplo
En el ejemplo siguiente se usa la clase genrica .NET
FrameworkSystem.Collections.Generic.List<T> para crear una coleccin de listas de
objetos Customer.
VB
' 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 declaracin de la coleccin CustomerFile especifica que solo puede contener
elementos del tipo Customer. Tambin proporciona una capacidad inicial de 200
elementos. El procedimiento AddNewCustomer comprueba la validez del nuevo elemento
y, a continuacin, lo agrega a la coleccin. El procedimiento PrintCustomers usa un
bucle For Each para recorrer la coleccin y mostrar sus elementos.
Temas relacionados
Trmino
Definicin