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

C# 文本文件記賬數據按日期倒序顯示:LINQ 一行代碼實現

     編輯:程式設計綜合問答

需求

從文本文件讀取記賬記錄,每行格式如 日期,類別,金額,備註,按日期降序顯示。

核心代碼

var records = File.ReadAllLines("account.txt")
    .Select(line => line.Split(','))
    .Where(parts => parts.Length >= 4 && DateTime.TryParse(parts[0], out _))
    .OrderByDescending(parts => DateTime.Parse(parts[0]))
    .Select(parts => new { Date = parts[0], Category = parts[1], Amount = decimal.Parse(parts[2]), Note = parts[3] })
    .ToList();

// 綁定到 DataGridView 或迴圈輸出
dataGridView1.DataSource = records;

關鍵點解析

  • File.ReadAllLines:一次性讀取所有行(小文件適用),大文件改用 File.ReadLines 流式處理。
  • Split(','):簡單分割,若字段含逗號需用 CSV 解析庫(如 CsvHelper)。
  • OrderByDescending:LINQ 排序,需確保日期格式可被 DateTime.Parse 識別。
  • 異常處理:生產代碼需 try-catch 捕獲格式錯誤行。

進階擴展

  • 分頁顯示:.Skip(pageSize * (page-1)).Take(pageSize)。
  • 多條件篩選:添加 Where 子句。
  • 導出 Excel:配合 EPPlus 或 NPOI。

總結

LINQ 讓文本數據處理變得極其簡潔,配合匿名類型或自定義類即可快速實現讀取、解析、排序、綁定全流程。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved