Reducir array

23/08/2006 - 21:07 por Silviall | Informe spam
Hola a todos,

Tengo un array que quiero reducir o aumentar en funcion de los elementos que
necesite.
ReDim Preserve _reserves(_reserves.Length - 1)

Si hago esto no me reduce el array, me gustaria reducirlo sin perder los
datos. ¿Cómo puedo hacerlo?

Saludos,

SilviaLl.

Preguntas similare

Leer las respuestas

#1 cousi
23/08/2006 - 22:47 | Informe spam
Hola
Si reduces el numero de elementos del array siempre vas a perder datos.
Ejemplo
dim Miarray () as string = {"a", "b", "c"}
si ejecutamos tu codigo el array vamos a tener un elemento menos, ya que se
desaparece.En el ejemplo seria la "c" la que se eliminaria. (Esto siempre
que sea un array unidmensional)
En cambio cuando aumentes el tamaño del array nunca vas perder datos por que
siempres vas a tener como minimo un elemento mas aunque este vacio.

Un saludo

Jose Mª Cousiño


"Silviall" <slladoARROBAgmailPUNTOcoEME> escribió en el mensaje
news:
Hola a todos,

Tengo un array que quiero reducir o aumentar en funcion de los elementos
que necesite.
ReDim Preserve _reserves(_reserves.Length - 1)

Si hago esto no me reduce el array, me gustaria reducirlo sin perder los
datos. ¿Cómo puedo hacerlo?

Saludos,

SilviaLl.


Respuesta Responder a este mensaje
#2 Gustavo Arriola
24/08/2006 - 00:34 | Informe spam
Podrías utilizar un ArrayList ya que su longitud varía a medida que agregas
o eliminas elementos.

Saludos cordiales,
Gustavo Arriola
Respuesta Responder a este mensaje
#3 Guillermo guille
24/08/2006 - 21:38 | Informe spam
Eso no te funciona por un problema de "lógica", en particular por la de VB,
ya que Visual Basic maneja los arrays de forma distinta a C# e incluso al
propio .NET.

Cuando haces esto:
ReDim Preserve _reserves(_reserves.Length - 1)

NO ESTÁS HACIENDO NADA DE NADA

Lo estás dejando igual, ya que en VB cuando indicas el número de elementos
NO estás indicando el número de elementos, sino el índice superior del
array.
Si de verdad quieres quitar un elemento debes ahcer esto otro:
ReDim Preserve _reserves(_reserves.Length - 2)

Recuerda que los arrays de .NET empeizan siempre por cero.

En VB cuando haces esto: Dim algo(3) en realidad estás creando un array de 4
elementos (0 a 3).


Leete esto de mi curso de VB .NET, que seguro que te aclara un poco las
cosas:
http://www.elguille.info/NET/cursoV...BNET09.htm

Nos vemos.
Guillermo
Microsoft VB MVP desde 1997
Mentor Asociado de Solid Quality Learning Iberoamericana

Te invito a mi sitio: http://www.elguille.info/
Resuelve tus dudas en: http://foros.elguille.info/

"Silviall" <slladoARROBAgmailPUNTOcoEME> escribió en el mensaje
news:
Hola a todos,

Tengo un array que quiero reducir o aumentar en funcion de los elementos
que necesite.
ReDim Preserve _reserves(_reserves.Length - 1)

Si hago esto no me reduce el array, me gustaria reducirlo sin perder los
datos. ¿Cómo puedo hacerlo?

Saludos,

SilviaLl.


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida