懒惰地通过 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
。