从csv文件到.txt的总和

时间:2015-02-06 12:53:06

标签: c# linq

CSV数据到.txt并汇总所有金额

string fileName = "../../TechFiles/";

using (var reader = new StreamReader(ConfigurationManager.AppSettings["ConfigurationSource"]))
{
    while (!reader.EndOfStream)
    {
        var line = reader.ReadLine();

        var values = line.Split(',');

        string fullFileName = fileName + values[4] + ".txt";

        List<helper> package = new List<helper>
        {
            new helper() { bankName = values[4], amount = double.Parse(values[6])}
        };

        List<ResultLine> result = package.GroupBy(i => i.bankName)
                                         .SelectMany(cl => cl.Select(
                                             csLine => new ResultLine
                                             {
                                                 bankName = csLine.bankName,
                                                 Quantity = cl.Count().ToString(),
                                                 amount = cl.Sum(c => c.amount),
                                             }))
                                          .ToList<ResultLine>();

        List<string> listA = new List<string>();

        foreach (var book in result)
        {
            if (!listA.Contains(book.bankName))
            {
                listA.Add(book.bankName);

                File.WriteAllText(fullFileName,
                    book.bankName + " " + book.amount + " " + book.Quantity);

            }
        }

我在app.config上放了csv路径,然后将所有数据检索到文本文件,但问题是我想要一些我的value[4]这是一个标题和所有标题总和的总和但它只返回一个金额,所以我需要一种方法来同时传递所有金额,这样我就可以总计。

1 个答案:

答案 0 :(得分:0)

您需要循环遍历所有值两次(一次计算总和,一次写入文本文件),或者在将值写入文本文件时对值进行求和,然后将标题行插入到写完所有细节后的文本文件。