懶惰地通過 IEnumerable 逐行讀取檔案
使用大檔案時,可以使用 System.IO.File.ReadLines
方法將檔案中的所有行讀入 IEnumerable<string>
。這與 System.IO.File.ReadAllLines
類似,不同之處在於它不會立即將整個檔案載入到記憶體中,從而在處理大檔案時更加高效。
IEnumerable<string> AllLines = File.ReadLines("file_name.txt", Encoding.Default);
File.ReadLines 的第二個引數是可選的。你可以在需要指定編碼時使用它。
重要的是要注意,呼叫 ToArray
,ToList
或其他類似的函式會強制所有行一次載入,這意味著使用 ReadLines
的好處是無效的。如果使用此方法,最好使用 foreach
迴圈或 LINQ 列舉 IEnumerable
。