martes, 1 de marzo de 2016

Convertir una lista de objetos en una lista de strings C#

Me encontraba plácidamente programando en C# cuando de repente me topé con que mi lista de objetos definidos por mí (que contenían string, decimal, int y etc.) tendría que ser exportado en un archivo .txt, por lo que me topé con la primera pregunta:

Cómo exportar una lista a un archivo .txt

Bueno, el código en C# es
 
System.IO.File.WriteAllLines(ruta, lista);

El asunto se torna complicado cuando notas que a lista debe ser en "string" por lo que primero debes convertir tu lista de objetos de algún tipo en una lista de strings. Yo hice algo como esto:
 

 List str = new List();

    foreach(TipoObjeto obj in Lista )
    {
       str.Add(obj.Nombre + " " + obj.Apellido + " " + obj.Sexo + obj.Correo + " " + obj.Monto.ToString());
    }

    System.IO.File.WriteAllLines(ruta, str);

ruta puede ser algo como @"C:\Carpeta\texto.txt
Lista es la lista de objetos con varios tipos en sus propiedades

De esta manera te aseguras que cada propiedad de tu objeto se convierta en string (que en el ejemplo anterior los que ya son string omiten la conversión .ToString(), en el caso del monto que es un decimal tuve que aplicarlo) y como recorre cada propiedad a la vez que las convierte lo que hago es concatenarlas y agregarlas a str. Encontré otras formas que o medio funcionaban, era más laboriosas o que la conversión devolvía textos raros así que hice esta y pues funcionó. Si conoces una mejor puedes compartirla.

No hay comentarios:

Publicar un comentario