我看到了一个逐行读取文件的实现,如下所示:
using (StreamReader reader = File.OpenText(path))
while (!reader.EndOfStream)
{
string line = reader.ReadLine();
}不过,就我个人而言,我会这样做:
foreach (string line in File.ReadLines(path))
{
}有什么理由选一个而不是另一个呢?
发布于 2016-01-21 05:49:52
客观:
IEnumerable<string>,然后就可以开始处理行(来源MSDN )。Usefulness?:
yield循环中有while ),直到您想要随意返回为止。IEnumerable<string> (也就是说,在处理之前指定预期数据的信息),因此一开始会稍微增加一些开销。但是需要注意的是,这种开销相对较小,因为IEnumerable推迟了实际的执行,这与List不同。一些好消息到朗读。在MSDN中,下面是ReadLines的用例
对文件执行查询,以获得其行的筛选集。 使用File.WriteAllLines(String, IEnumerable)方法将返回的行集合写入文件,或将它们添加到现有文件中 File.AppendAllLines(String, IEnumerable)方法。创建一个立即填充的集合实例,该集合将字符串的IEnumerable集合作为其构造函数(如IList或队列)。
发布于 2016-01-21 05:53:08
方法1
比方法2更冗长,所以有更多的事情会被堵塞。
方法2
更简洁,更直接地封装意图-更容易阅读和遵循,也更少的机会填充东西(如忘记处理阅读器等)。
https://stackoverflow.com/questions/34916237
复制相似问题