C# 檔案讀取效能最佳化:File.ReadLines() 與 File.ReadAllLines() 的比較
高效的文件處理在程式設計中至關重要。 C# 中,File.ReadLines()
和 File.ReadAllLines()
兩種方法都可將檔案內容讀取到字串陣列中,但它們在處理大型檔案時的效能差異顯著。
File.ReadLines()
File.ReadLines()
回傳一個 IEnumerable<string>
,這是一個延遲載入集合。這意味著它逐行讀取文件,在處理大型文件時效率更高。您可以使用 foreach
循環處理每一行,而無需將整個文件載入到記憶體中。
File.ReadAllLines()
File.ReadAllLines()
則一次讀取整個檔案並傳回一個 string[]
陣列。對於大型文件,這種方法效率較低,因為它需要將整個文件載入到記憶體中,這可能導致效能瓶頸甚至記憶體溢出。
性能對比
下表總結了 File.ReadLines()
和 File.ReadAllLines()
表現上的主要差異:
方法 | 读取方式 | 大型文件性能 |
---|---|---|
`File.ReadLines()` | 逐行读取 | 更高效 |
`File.ReadAllLines()` | 一次性读取 | 效率较低 |
範例
以下程式碼範例示範如何使用 File.ReadLines()
處理大型文字文件,以及如何使用 File.ReadAllLines()
處理小型文字檔案:
<code class="language-csharp">// 处理大型文件 string[] lines = File.ReadLines("large.txt").Where(x => x.Contains("keyword")).ToArray(); // 处理小型文件 string[] lines = File.ReadAllLines("small.txt");</code>
結論
對於大型文件,File.ReadLines()
是更好的選擇,因為它透過增量讀取文件來提供更好的效能。 File.ReadAllLines()
仍然適用於小型文件,在這些情況下效能差異不那麼關鍵。
以上是File.ReadLines() 與 File.ReadAllLines():何時應選擇哪一個以獲得最佳效能?的詳細內容。更多資訊請關注PHP中文網其他相關文章!