首頁 >後端開發 >C++ >C#中逐行讀取檔案時LINQ如何提高效率?

C#中逐行讀取檔案時LINQ如何提高效率?

Linda Hamilton
Linda Hamilton原創
2025-01-05 01:25:40383瀏覽

How Can LINQ Improve Efficiency When Reading Files Line by Line in C#?

使用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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn