这个问题已经在这里有了答案 :
File.ReadAllLines()和File.ReadAllText()有什么区别? (3个答案)
逐行读取文本文件的最快方法是什么? (8个答案)
6年前关闭。
我有关于File.ReadLines()和File.ReadAllLines()的查询。它们之间有什么区别。我有一个文本文件,其中包含按行排列的数据。File.ReadAllLines()返回数组和使用File.ReadLines().ToArray();也可以得到相同的结果。那么这些方法是否有性能差异?
File.ReadAllLines()
File.ReadLines().ToArray();
string[] lines = File.ReadLines("C:\\mytxt.txt").ToArray();
要么
string[] lines = File.ReadAllLines("C:\\mytxt.txt");
这些方法是否有性能差异?
是的, 有区别
File.ReadAllLines() 方法一次读取整个文件并返回string []数组,因此在处理大型文件时会花费一些时间,因此不建议这样做,因为用户必须等到返回整个数组为止。
File.ReadLines()返回,IEnumerable<string>并且一次也不会读取整个文件,因此在处理大尺寸文件时,这确实是一个更好的选择。
File.ReadLines()
IEnumerable<string>
从MSDN:
ReadLines和ReadAllLines方法的区别如下: 当您使用ReadLines时,可以在返回整个集合之前开始枚举字符串的集合。使用ReadAllLines时,必须等待返回整个字符串数组,然后才能访问该数组。因此,当您处理非常大的文件时,ReadLines可能会更有效率。
ReadLines和ReadAllLines方法的区别如下:
当您使用ReadLines时,可以在返回整个集合之前开始枚举字符串的集合。使用ReadAllLines时,必须等待返回整个字符串数组,然后才能访问该数组。因此,当您处理非常大的文件时,ReadLines可能会更有效率。
范例1: File.ReadAllLines()
范例2: File.ReadLines()
foreach (var line in File.ReadLines("C:\\mytxt.txt")) { //Do something }