首頁 >後端開發 >C++ >LINQ 如何改進 C# 中的逐行檔案讀取?

LINQ 如何改進 C# 中的逐行檔案讀取?

DDD
DDD原創
2025-01-01 07:25:10833瀏覽

How Can LINQ Improve Line-by-Line File Reading in C#?

使用 LINQ 在 C# 逐行讀取檔案

處理文字檔案時,通常需要單獨處理每一行。 C# 提供了多種方法來實現此目的,包括使用 StreamReader 和手動讀取每一行。

但是,為了提高效率和可讀性,可以在不影響效能的情況下利用 LINQ(語言整合查詢)。 LINQ 提供了一種更簡潔、更具表現力的資料處理語法。

考慮兩個需要逐行讀取的範例場景:

第一個範例:

using (var file = System.IO.File.OpenText(_LstFilename))
{
    while (!file.EndOfStream)
    {
        String line = file.ReadLine();

        // Process line
    }
}

第二例:

using (var file = System.IO.File.OpenText(datFile))
{
    Regex nameRegex = new Regex("IDENTIFY (.*)");

    while (!file.EndOfStream)
    {
        String line = file.ReadLine();

        // Process line
    }
}

基於LINQ的方法:

要使用LINQ 逐行讀取文件,我們可以使用迭代器區塊來定義自訂可枚舉序列:

static IEnumerable<string> ReadFrom(string file)
{
    string line;
    using (var reader = File.OpenText(file))
    {
        while ((line = reader.ReadLine()) != null)
        {
            yield return line;
        }
    }
}

此方法傳回一個惰性的IEnumerable 物件根據請求計算每一行,而不將整個檔案緩衝在記憶體中。

然後我們可以使用LINQ 查詢來處理這些行:

var lines = ReadFrom(path);

// Process lines using LINQ

使用LINQ,我們可以應用過濾,對行順序進行排序和其他操作,使程式碼更有效率和可讀。請注意,如果使用 OrderBy 或 GroupBy 等操作,LINQ 可能需要緩衝數據,這可能會影響效能。

以上是LINQ 如何改進 C# 中的逐行檔案讀取?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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