Pasar de ArrayList a array en C#
May 22nd, 2005Hay bastantes ocasiones en las que escribo código en .NET para métodos que necesito que me devuelvan arrays de elementos, sin embargo, dentro de estos métodos normalmente trabajo con ArrayList o algún otro tipo de colección. Esto suele ser habitual cuando dentro del método, no es posible saber a priori el número de elementos que tendrá el array, o que aun siendo posible, no resulta tan eficiente como almacenar los elementos temporalmente en una colección tipo ArrayList por ejemplo, y pasarlas luego a un array.
Para estos casos la clase Arraylist dispone de un método de nombre “ToArray” mediante el cual es posible pasar todo su contenido a un array. Para ello es únicamente necesario indicar al método el tipo de elementos que contiene el ArrayList y hacer un cast al resultado del método, de forma que pasemos de object[] al tipo de array que necesitemos.
// este método de ejemplo lo único que hace es devolver
// un array de strings con tantos elementos como le indiquemos
public string[] GetNombres(int num)
{
ArrayList nombres = new ArrayList();
for(int i=0;i<num;i++)
nombres.Add("Nombre "+i);
return (string[])nombres.ToArray(typeof(string));
}
La última línea es la encargada de realizar la transformación de ArrayList a array de strings y devolver el resultado. Para ello lo primero que se hace es llamar al método ToArray, indicándole que el tipo de los elementos almacenados es string. Al resultado de llamar a este método la aplicamos un cast a string[], de forma que lo que obtenemos finalmente en un array de strings.
En aquellas circunstancias en las que los elementos almacenados en el ArrayList puedan no ser homogéneos sería necesario aplicar un control de errores para manejar la generación de excepciones.
delicious
menéame
fresqui

January 10th, 2006 a las 7:10 pm
Tu articulo es muy bueno, me ayudo mucho.
April 22nd, 2006 a las 1:37 am
Me gusto mucho….
April 22nd, 2006 a las 1:41 am
Esta super tu ejemplo..muchas gracias…
August 13th, 2006 a las 11:46 am
que hay del paso contrario?se puede convertir de array de string[] a Arraylist??
August 13th, 2006 a las 12:52 pm
Sí, es sencillo:
string[] cadenas = new string[]{”esto”,”es”,”una”,”prueba”};
ArrayList lst = new ArrayList(cadenas);
September 18th, 2006 a las 8:15 pm
HOLAs un favor podrian decirme como es para convertir de un array aun tipo string… se lo agradeceria
September 28th, 2006 a las 8:22 pm
Hola,podría decirme si existe la forma de que un query de SQL se pueda almacenar en un array List, en sí quiero la forma como se puede ir desplazando en la base de datos para que se guarde en el array list. Les agradecería muchísimo
November 30th, 2006 a las 9:18 pm
disculpen quisiera saber como se declaro un array dinamico en c#
y como lo utilizo }… gracias..
January 5th, 2007 a las 1:48 am
Patxi:
Es mejor utilizar un ArrayList q un generico List; sera por rendimiento; tu articulo me ayudo, pero lo q necesito hacer es dentro del arreglo una busqueda; pero q no necesariamente se tenga q ordenar el arreglo.
March 2nd, 2007 a las 8:47 pm
Excelente solucion.
March 26th, 2007 a las 11:49 pm
Muy bueno!!!
:) y útil!!!
Saludos!
April 11th, 2007 a las 7:31 pm
Por favor yo tengo un problema ya que mi arraylist contiene datos del tipo decimal y me da problemas de casteo, como puedo hacerle para convertir un arraylist con numeros a string[]
creo que seria algo asi:
public string[] GetNumeros(int num)
{
ArrayList nombres = new ArrayList();
decimal n = 0;
for (int i = 0; i
April 18th, 2007 a las 6:40 am
esta muy bien tu ejemplo, pero no se si me puedeas ayudar, resulta que tengo unas carpetas con imagenes .jpg la que menos tiene son 6000, mi pregunta es debo utilizar un arreglo para leer y grabar en sqlserver todas las imagenes?, o como hago para decirle que lea cierta carpeta agarre la primera y luego la siguiente…
April 25th, 2007 a las 5:43 pm
¿como ordeno alfabéticamente uan lista de string?
April 26th, 2007 a las 5:33 pm
HOLA, necesito un favor… he creadouna clase con 3 datos miembros,y varios objetos de la clase…A cada objeto lo he metido en un elemento de mi arraylist, una vez los objetos adentro del array, quisiera sacar la informacion de cada elemento de cada objeto ingresado en el arraylist? SE PUEDE HACER ESO?
May 29th, 2007 a las 7:01 am
hola, quisiera ver si me pueden ayudar deseo ver si puedo alamacenar arraylist dentro de un arraylist y como accedere a ellos, espero me puedan ayudar gracias
June 14th, 2007 a las 9:28 pm
Hola tengo una duda y necesito que alguien me ayude
Tengo un array de strings llamado Nombres {”Jose”,”Ana”,”Maria”}
Mi problema es que tengo que ordenarlo y no puedo. Quise aplicar la burbuja pero para enteros lo tengo claro pero para string no, alguien me puede ayudar por favor?
Gracias
June 15th, 2007 a las 9:13 am
Hola Luis, puedes por ejemplo crearte un ArrayList con el array y realizar luego una llamada al método Sort.
July 16th, 2007 a las 3:37 am
Mira Luis:
Has algo facil…
ultiliza cualquier metodo que quieras
pero usa el mas facil “BURBUJA”
con el siguiente Cambio
internal static string[] Ordenar(string[] ArrCadenas)
{
int i=0,j=0;
int[] aux=new int[1000];
for(i=0;iaux[j])
{
temp=aux[i];
aux[i]=aux[j];
aux[j]=temp;
}
}
return aux;
}
}
y eso es todo…
October 15th, 2007 a las 12:14 am
yo creo que tienes razon soy estudiante de informatica y utilizo el mismo metodo de burbuja