Publicado por: Carlos
viernes, marzo 04, 2011
Tenemos un archivo con 3 columnas y un Total que es producto de la segunda por la tercera, el archivo esta delimitado por comas:
Zanahorias, 5,0 .50Naranjas, 6, 1.25Manzanas, 7, 2.50
Usamos un método que recorra el archivo y nos devuelva las líneas, en un IEnumerable<String>:
1: public static IEnumerable<string> ReadLinesFromFile(string filename)2: {3: using (StreamReader reader = new StreamReader(filename))4: {5: while (true)6: {7: string s = reader.ReadLine();8: if (s == null)9: break;10: yield return s;11: }12: }13: }
Hacemos la consulta LINQ usando este resultado como fuente de datos:
1: var products = from line in ReadLinesFromFile(@"c:\import.txt")2: let item = line.Split(’,’)3: select new4: {5: Producto = item[0],6: Cantidad = Convert.ToInt32(item[1]),7: Precio = Convert.ToDecimal(item[2]),8: Total = Convert.ToInt32(item[1]) * Convert.ToDecimal(item[2])9: };
Y finalmente pasamos el resultado a un DataGrid:
1: GridView1.DataSource = products;2: GridView1.DataBind();
Publicar un comentario