Buscador

Arrays multidimensionales

Para recorrer arrays multidimensionales, la clase Array dispone de varios miembros, algunos de los cuales describimos seguidamente. 
• Rank. Devuelve el número de dimensiones del array. 
• GetLength(Dimension). Devuelve el número de elementos de la dimensión del array pasada como parámetro. 
• GetLowerBound(Dimension). Devuelve el número de índice inferior de la dimensión pasada como parámetro. 
• GetUpperBound(Dimension). Devuelve el número de índice superior de la dimensión pasada como parámetro. 
El Código fuente 349 muestra un ejemplo de manipulación de un array multidimensional mediante las propiedades y métodos mencionados.

Sub Main()
' crear array multidimensional y rellenar de valores
Dim iDatos(2, 4) As Integer
iDatos(0, 0) = 1000
iDatos(0, 1) = 2000
iDatos(0, 2) = 3000
iDatos(0, 3) = 4000
iDatos(0, 4) = 5000
iDatos(1, 0) = 25
iDatos(1, 1) = 35
iDatos(1, 2) = 45
iDatos(1, 3) = 55
iDatos(1, 4) = 65
iDatos(2, 0) = 111
iDatos(2, 1) = 222
iDatos(2, 2) = 333
iDatos(2, 3) = 444
iDatos(2, 4) = 555
Dim iContadorDimUno As Integer
Dim iContadorDimDos As Integer
Dim sTextoFila As String
' poner títulos de la fila y columnas del array a mostrar
Console.WriteLine("Fila" & ControlChars.Tab & _
"Col 0" & ControlChars.Tab & "Col 1" & ControlChars.Tab & _
"Col 2" & ControlChars.Tab & "Col 3" & ControlChars.Tab & "Col 4")
' el bucle externo recorre la primera dimensión
For iContadorDimUno = iDatos.GetLowerBound(0) To iDatos.GetUpperBound(0)
' aquí obtenemos el número de fila
' que se está procesando
sTextoFila = iContadorDimUno & ControlChars.Tab
' este bucle recorre la segunda dimensión
For iContadorDimDos = iDatos.GetLowerBound(1) To iDatos.GetUpperBound(1)
sTextoFila = sTextoFila & iDatos(iContadorDimUno, iContadorDimDos) & _
ControlChars.Tab
Next
' mostrar en la consola el contenido
Console.WriteLine(sTextoFila)
sTextoFila = ""
Next
Console.WriteLine()
Console.WriteLine("El número de dimensiones es: {0}", iDatos.Rank)
Console.WriteLine("El número total de elementos es: {0}", iDatos.Length)
Console.ReadLine()
End Sub
Código fuente 349

No hay comentarios:

Publicar un comentario