martes, 21 de octubre de 2008

ArrayList y ToArray()

Algunas veces necesitamos hacer algunas cosas un poco, digamos, extrañas. Por ejemplo supongamos que estamos usando una "caja negra" con un método que utilice un arreglo de Objetos ya definidos, utilicemos de ejemplo el objeto Autmovil. La firma sería algo mas o menos asi:

public void Ensamblar(Automovil[] automoviles)

Pero nosotros por alguna extraña razón, de esas que se dan en la informática, no podemos determinar de antemano cuantos instancias de Automovil vamos a enviarle al método. Por ejemplo asumamos que tenemos que hacer un recorrido de los seleccionados por el usuario, y no queremos realizar el recorrido dos veces (una para determinar el número y la segunda para cargar los objetos en el arreglo). Por lo tanto no podemos definir el tamaño del arreglo de antemano.

Una de las soluciones es utilizar ArrayList.

ArrayList ListaAutomoviles = new ArrayList ();

Así durante un solo recorrido de lo elegido por el cliente llenamos las propiedades de cada objeto Automovil (instanciado, digamos, Auto) y utilizamos la instrucción ListaAutmoviles.Add(Auto) para llenarlo. Finalmente podemos utilizar algo similar :

Autmovil[] Autos = (Autmovil [])ListaAutomoviles.ToArray(typeof(Autmovil));

Con esto creamos el arreglo tal y como nos lo pide la firma del método en cuestión. Probablemente no sea el mejor ejemplo, pero al menos muestra como funciona el método ToArray() del ArrayList.

0 comentarios: