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