使用LINQ 在C# 中高效地逐行讀取文件
在處理每行都需要單獨處理的文本文件時,StreamReader提供了簡單的解決方案。然而,為了提高效率和可讀性,LINQ 提供了一種更優雅的方法。
為了避免將整個檔案載入記憶體中,請考慮使用迭代器區塊:
static IEnumerable<SomeType> ReadFrom(string file) { string line; using(var reader = File.OpenText(file)) { while((line = reader.ReadLine()) != null) { SomeType newRecord = /* parse line */ yield return newRecord; } } }
或者,為了更簡單版本:
static IEnumerable<string> ReadFrom(string file) { string line; using(var reader = File.OpenText(file)) { while((line = reader.ReadLine()) != null) { yield return line; } } }
ReadFrom( ...) 函數傳回延遲計算的序列,避免資料緩衝。透過將 ReadFrom(...) 與其他 LINQ 操作(例如Where、Select)結合,可以在不犧牲運行效率的情況下實現高效的逐行處理。
以上是C#中逐行讀取檔案時LINQ如何提高效率?的詳細內容。更多資訊請關注PHP中文網其他相關文章!