Visual Basic.NET - Dudas arrays y matrices

 
Vista:
sin imagen de perfil

Dudas arrays y matrices

Publicado por Pere (13 intervenciones) el 22/08/2009 01:20:48
Hola compañeros,
soy un poco novato en net y tengo una duda...
mi caso es que estoy analizando los valores de un dataset... y en algun caso necesito guardarlos
en algun lugar para hacer una pequeña lista de 5 a 8 valores de 20 del dataset....
mi duda es... como lo hago?
primero he pensado en una matriz... he hecho:
'declaracion
Dim matriu_entrant() As String
dim i as integer= 0
'no le doy el tamaño porque depende de los valores analizados del dataset..
'ahora des de una funcion quiero guardar un parametro a la matriz....lo he hecho así:

matriu_entrant(i) = entrant 'entrant es un parametro de la funcion cuyo valor lo quiero guardar
i=i+1

pero al ejecutar me da el error que hay que crear una instancia al objeto... aqui me pierdo....

No se si seria mas adecuado hacerlo en un arraylist....no se muy bien la diferencia...¿que me aconsejais?
¿me podríais poner la declaracion y como le cargais los datos?

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

RE:Dudas arrays y matrices

Publicado por JoanF (129 intervenciones) el 24/08/2009 06:04:40
Hola Pere,

El error es debido a que el array no esta inicializado. Para hacer esto con un array, has de establecer el tamaño del array y redimensionar cuando sea necesario. Seria:

Dim matriu_entrant(0) As String 'iniciamos el array con un valor
Dim i As Integer = 0

Entonces, la función seria:

'como la propiedad .Length indica el numero de elementos (inicialmente, i=0 pero .Length=1 ya que hay un elemento
If (i + 1) >= matriu_entrant.Length Then
'redim redimensiona la matriz y con Preserve mantiene los valores ya contenidos en la matriz
ReDim Preserve matriu_entrant(i)
End If
matriu_entrant(i) = entrant
i = i + 1

En este caso, como que no conoces cuantos valores vas a almacenar, si que seria más recomendable el uso del array list, que en el fondo es un array que se dimensiona automáticamente según el numero de elementos. Su uso seria:

Dim matriu_entrant As New ArrayList

Entonces la funcion para guardar parametros seria simplemente:

matriu_entrant.Add(entrant)

No necesitas contador ni nada, ya que el Array list por si mismo se encarga de añadir el elemento al final del array y el mismo se encargaría de aumentar el tamaño interno del array si fuera necesario de forma totalmente transparente sin que se necesite nada de parte del programador. Entonces, para acceder a los valores del array list, se puede acceder por indice:

Dim valor_guardat As String
valor_guardat = matriu_entrant.Item(0)

Y para recorrer la colección, puedes recorrer por indice:

For contador As Integer = 0 To matriu_entrant.Count - 1
valor_guardat = matriu_entrant.Item(contador)
'...
Next

O bien mediante un for each

For Each contingut As String In matriu_entrant
'''
Next
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Dudas arrays y matrices

Publicado por Pere (13 intervenciones) el 24/08/2009 08:59:27
Gracias Joan por tu amplia explicacion...
ya lo he entendido.. ahora lo pruebo..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar