懶惰地通過 IEnumerable 逐行讀取檔案

使用大檔案時,可以使用 System.IO.File.ReadLines 方法將檔案中的所有行讀入 IEnumerable<string>。這與 System.IO.File.ReadAllLines 類似,不同之處在於它不會立即將整個檔案載入到記憶體中,從而在處理大檔案時更加高效。

IEnumerable<string> AllLines = File.ReadLines("file_name.txt", Encoding.Default);

File.ReadLines 的第二個引數是可選的。你可以在需要指定編碼時使用它。

重要的是要注意,呼叫 ToArrayToList 或其他類似的函式會強制所有行一次載入,這意味著使用 ReadLines 的好處是無效的。如果使用此方法,最好使用 foreach 迴圈或 LINQ 列舉 IEnumerable