Redimencionar Array

01/10/2004 - 15:56 por Anonimo | Informe spam
Hola, tengo una dudita, digamos que tengo lo siguiente
Bitmap[] a = new Bitmap[6]
¿Como puedo eliminar la posición 4 para que el array quede
de 5 posiciones?
¿Cómo puedo insertar nuevas posiciones dentro del array o
agregarlas al final del mismo?
Estos cambios sin perder la información que está en las
demas posiciones.
Mil gracias.

Preguntas similare

Leer las respuestas

#1 Guillermo guille
01/10/2004 - 16:05 | Informe spam
tendrás que copiar el contenido del array en otro y después volver a pasarlo...
para acerlerar las cosas, puedes usar el método Copy de la clase Array.


Nos vemos.
Guillermo
Microsoft VB MVP desde 1997
Te invito a mi sitio dedicado al VB y más...
http://www.elguille.info/
http://www.mundoprogramacion.com/
(puede que el correo usado sea anti-spam)


wrote in message
news:2db301c4a7be$7429ae50$
Hola, tengo una dudita, digamos que tengo lo siguiente
Bitmap[] a = new Bitmap[6]
¿Como puedo eliminar la posición 4 para que el array quede
de 5 posiciones?
¿Cómo puedo insertar nuevas posiciones dentro del array o
agregarlas al final del mismo?
Estos cambios sin perder la información que está en las
demas posiciones.
Mil gracias.
Respuesta Responder a este mensaje
#2 David Salgado,MVP
01/10/2004 - 16:11 | Informe spam
Utilizando el System.Collections.ArrayList es muxo mas sencillo, sino
tendrías que crearte un array de 5 posiciones y cargarlo con todo menos la
posición 4
...

Mira las clases de System.Collections, puede ke te sirvan de ayuda :D



wrote in message
news:2db301c4a7be$7429ae50$
Hola, tengo una dudita, digamos que tengo lo siguiente
Bitmap[] a = new Bitmap[6]
¿Como puedo eliminar la posición 4 para que el array quede
de 5 posiciones?
¿Cómo puedo insertar nuevas posiciones dentro del array o
agregarlas al final del mismo?
Estos cambios sin perder la información que está en las
demas posiciones.
Mil gracias.
Respuesta Responder a este mensaje
#3 Antonio Cuesta
01/10/2004 - 19:54 | Informe spam
Buenas tardes

A mi se me ocurre una idea rapida con tres funciones de ejemplo, (Utilizo
enteros, para el ejemplo, pero se puede realizar con lo que se quiera):

private int[] Matriz_quitar(int[] mAnt,int pos)

{

if ((pos<0) || (pos>=mAnt.Length))

throw new Exception("La matriz solo tiene "+mAnt.Length+" elementos.");

else

{

int[] mTmp=new int[mAnt.Length-1];

Array.Copy(mAnt,mTmp,pos);

if (pos < mTmp.Length)

Array.Copy(mAnt,pos+1,mTmp,pos,mAnt.Length -(pos+1));


return mTmp;

}

}


private int[] Matriz_Añadir(int[] mAnt,int valor)

{

int[] mTmp=new int[mAnt.Length+1];

mAnt.CopyTo(mTmp,0);

mTmp[mAnt.Length]=valor;

return mTmp;

}


private int[] Matriz_Añadir(int[] mAnt,int valor,int pos)

{

if ((pos<0) || (pos>=mAnt.Length))

throw new Exception("La matriz solo tiene "+mAnt.Length+" elementos.");

else

{

int[] mTmp=new int[mAnt.Length+1];

Array.Copy(mAnt,mTmp,pos);

mTmp[pos]=valor;

if (pos < mTmp.Length)

Array.Copy(mAnt,pos,mTmp,pos+1,mAnt.Length - pos);


return mTmp;

}

}


Y como prueba:

int[] x=new int[5];

for (int i=0;i<x.Length;i++)

x[i]=i+1;

x=Matriz_Añadir(x,6); // Añadir el valor 6 al final.

x=Matriz_Añadir(x,6,2); // Añadir el valor 6 en la posición 2.

x=Matriz_quitar(x,2); // quitar el elemento de la posición 2.





Un saludo.

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