首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

C# LINQ 實現多文件數據按文件名分組統計並合併同名項

     編輯:程式設計綜合問答

需求

讀取多個文本文件,跳過前 2 行,按第 2 列 (索引 1) 分組求和第 3 列 (索引 2),同名合併。

修正代碼


var allLines = new List();
foreach (var file in Directory.GetFiles(@"e:\華新采集", "*.txt")) {
    allLines.AddRange(File.ReadAllLines(file).Skip(2));
}

var query = allLines
    .Select(line => line.Split('\t'))
    .Where(parts => parts.Length >= 3) // 防止列數不足
    .GroupBy(parts => parts[1])        // 按第2列分組
    .Select((g, i) => $"{i+1}\t{g.Key}\t{g.Sum(p => int.Parse(p[2]))}");

File.WriteAllLines("aaa.txt", query);

關鍵修正

  • 先 `Select` 分割,再 `Where` 過濾無效行,避免 `IndexOutOfRange`。
  • `GroupBy(parts => parts[1])` 直接按文件名/鍵分組,同名自動合併求和。
  • `Select((g,i) => ...)` 生成帶序號的輸出行。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved