lunes, 6 de diciembre de 2010

Convertir ArrayList de string en string[]

Tengo que añadir un listado de cadenas de texto a un fichero de texto y el método de escritura me obliga a remitirle una matriz de string. Esto me lleva a una de esas formas semánticas que no son muy legibles, pero si absolutamente lógicas y que me he encontrado en el blog de XNEURON, el cual es muy recomendado.

File.WriteAllLines(<string>PathFisico, (string[])ArrayList.ToArray(typeof(string)));

Y para que lo veáis en acción, aquí pongo el código de un método que recibe una lista de vehículos, y almaceno sus matrículas en un fichero de texto.

static void construyeFicheroMatriculas(IQueryable<Vehiculo> listadoVehiculos)
{
string pathFicheroMatriculas = @"C:\Users\Public\Documents\Matriculas.txt" ;
ArrayList matriculas = new ArrayList();
foreach (Vehiculo vehiculoEach in listadoVehiculos)
{
matriculas.Add(vehiculoEach.matricula);
}
File.WriteAllLines(pathFicheroMatriculas, (string[])matriculas.ToArray(typeof(string)));
}

2 comentarios:

Gabriel Falcone dijo...

Hola,

Veo que estás usando .NET 3.5 al menos por lo que quizás es mas sencillo el siguiente código


static void construyeFicheroMatriculas(IQueryable listadoVehiculos)
{
string pathFicheroMatriculas = @"C:\Users\Public\Documents\Matriculas.txt";
var matriculas = listadoVehiculos.Select(vehiculo => vehiculo.matricula).ToArray();
File.WriteAllLines(pathFicheroMatriculas, matriculas);
}


Saludos,
Gabriel.

Juan Quijano dijo...

Muchas gracias Gabriel. Funciona de muerte!!

Si acaso le he cambiado el tipo var por el tipo string[], que los var los carga el diablo :)

Cada dia me gusta más Linq!!