2015-02-06 109 views
0

CSV數據爲.txt,總結總和從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]這是一個標題和所有額頭的總和,但它只返回一個單一的金額,所以我需要一種方法來傳遞所有的金額同時,所以我可以總和總額。

+0

難道你不只是想通過每一行循環外的'GroupBy'位? – Jamiec 2015-02-06 14:32:31

+0

List package = new List { new helper(){bankName = values [4],amount = double.Parse(values [6])} };這是我的問題所在,因爲它檢索一行代替所有行,所以它doensnt總結他們 – Stshedaz 2015-02-06 15:03:45

回答

0

你要麼需要遍歷所有的值兩次(一次計算的總和,一旦寫入文本文件),或值相加,你將它們寫入文本文件,然後插入標題行到在寫完所有細節後的文本文件。

+0

說我想從csv文件讀取這些數據。列表包=新列表 { 新的輔助(){BANKNAME = 「看」,金額= 6}, 新的輔助(){BANKNAME = 「傻瓜」,金額= 8}, 新的輔助() {BANKNAME = 「酷」,金額= 8}, 新的輔助(){BANKNAME = 「傻瓜」,量= 2}, 新的輔助(){BANKNAME = 「高科技」,金額= 12}, 新的輔助( ){bankName =「tech」,amount = 2}, }; – Stshedaz 2015-02-10 11:58:39

+0

因爲我使用取出的數據與這一個和它不引起求和它拉記錄一次一個列表包=新列表 {新的輔助(){BANKNAME =值[4],量= double.Parse(值[ 6])}}; – Stshedaz 2015-02-10 12:01:31

+0

你在這裏似乎有點迷路......你期望從哪裏拿出一份清單?該語句不會獲取數據,它只是實例化一個助手類並將其引發到只有一個條目的列表中。 – Levesque 2015-02-10 19:43:07