首頁 > 後端開發 > C++ > `File.ReadLines()` 與 `File.ReadAllLines()`:哪一個最適合在 C# 中讀取大型文字檔案?

`File.ReadLines()` 與 `File.ReadAllLines()`:哪一個最適合在 C# 中讀取大型文字檔案?

Susan Sarandon
發布: 2025-01-07 21:49:41
原創
887 人瀏覽過

C# 中讀取大型文字檔案:File.ReadLines()File.ReadAllLines() 的效能對比

`File.ReadLines()` vs. `File.ReadAllLines()`: Which is Best for Reading Large Text Files in C#?

File.ReadLines()File.ReadAllLines() 都是 C# 中用來讀取文字檔案的方法,但其效能差異顯著。

File.ReadAllLines()

File.ReadAllLines() 會將整個檔案一次讀入內存,然後傳回一個字串數組。對於小文件,此方法效率很高,但處理大文件時則有問題。隨著檔案大小的增加,讀取和處理整個檔案所需的時間會顯著增加。此外,File.ReadAllLines() 會消耗大量內存,尤其是在處理 GB 級檔案時。

File.ReadLines()

File.ReadLines() 透過延遲載入解決了 File.ReadAllLines() 的限制。它不會一次性將整個文件讀入內存,而是返回一個 IEnumerable<string>,允許您根據需要迭代文件的每一行。這種方法減少了記憶體佔用,並提高了處理大檔案的效能。

效能比較

基準測試表明,對於大型文件,File.ReadLines() 的性能優於 File.ReadAllLines()。隨著檔案大小的增加,這種差異會更加明顯。例如,使用 File.ReadAllLines() 讀取 100 MB 的檔案可能需要幾秒鐘,而 File.ReadLines() 可以在不到一秒鐘內完成任務。

範例用法

使用 File.ReadLines() 讀取檔案:

<code class="language-csharp">using System.IO;

string path = "C:\mytxt.txt";

foreach (var line in File.ReadLines(path))
{
    // 处理每一行
}</code>
登入後複製

使用 File.ReadAllLines() 讀取檔案:

<code class="language-csharp">using System.IO;

string path = "C:\mytxt.txt";

string[] lines = File.ReadAllLines(path);

// 处理所有行</code>
登入後複製

結論

對於大型文字文件,File.ReadLines()File.ReadAllLines() 具有顯著的效能優勢。透過延遲加載,File.ReadLines() 減少了記憶體消耗並提高了處理速度,同時不會犧牲效率。

以上是`File.ReadLines()` 與 `File.ReadAllLines()`:哪一個最適合在 C# 中讀取大型文字檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板