Re: Recorrer Una Colección Como Si Fuera Un Array
Hola Julio.
¿ Cómo es que lo hiciste de esa forma ? ( Tanto código)...y en verano!.
¿ Qué problema te encontraste ?. (Tengo que ver mejor el código).
¿ Cómo es que no usaste algo así ?.
Public Sub Main()
Dim valor As String
Dim clave As String
Dim cplanetas As New Collection
cplanetas.add("Hace mucho calor", "Sol")
cplanetas.Add("Esta muy cerca del sol", "Mercurio")
cplanetas.Add("En su atmosfera no se puede respirar por el efecto invernadero", "Venus")
cplanetas.Add("Es el planeta azul... aunque cada vez es mas gris", "Tierra")
cplanetas.Add("Mas pequeño que la tierra, rojo y bastante ventoso", "Marte")
cplanetas.Add("Rodeado de un gran anillo", "Saturno")
'Mostrar valor
For Each clave In cplanetas
Print clave
Next
Print
'Mostrar clave
For Each valor In cplanetas
Print cplanetas.Key
Next
Print
'Mostrar clave y valor
For Each valor In cplanetas
Print cplanetas.Key & " : " & valor
Next
End
Solo pretendías recorrer la colección,¿ no ?. O lo hiciste por algún motivo.Tu sabes las ventajas que tiene la colección sobre el array.
Son curiosos los dos ultimo For Each, como va variando la llave. valor se puede entender, pero la llave o clave que lo haga solo.
La ayuda dice de la propiedad Key:
Citar:
Returns the key of the last read or last enumerated element.
Del ultimo elemento enumerado, por eso vemos el valor de la clave o llave.
Lo cierto es que en otros lenguajes como Python, tienen una propiedad por si quieres ver la llave o el valor.
# Imprimir el par valor, clave y valor de un diccionario
my_dict = {
"Name": "Juan",
"Edad": 30,
"Address": "C/ Alhambra 3a"
}
for key,value in my_dict.items():
print key,value
..es un diccionario, claro.
O también:
....
# Los diccionarios tienen dos metodos, .key() y .values()
# Devuelven valores del tipo dict_keys y dict_values, respectivamente.
# Se sale un poco de nuestro nivel, pero tu puedes convertirlos a listas con la función list()
# La lista sera ordenada por valores o por llave.
favoritos = {'frutas':'manzanas','animales':'gatos','numeros':42}
# Por claves
print(list(favoritos.keys()))
print()
# Por valores
print(list(favoritos.values()))
print()
# Usando este metodo obtendras una lista de claves y valores que están en el diccionario.
# No olvides convertir el valor devuelto de las llaves o claves con la función lista list()
....
En fin, cada lenguaje tiene sus métodos. Pero es curioso como
gambas Itera o repite sobre la colección para mostrar la clave del ultimo elemento que está tratando el bucle.
Saludos
===================
Gambas Básico
"No es un bug, es una característica no documentada"