Tyr*_*ess 4 c# file-io stream readline
我遇到了一个逐行读取文件的实现,如下所示:
using (StreamReader reader = File.OpenText(path))
while (!reader.EndOfStream)
{
string line = reader.ReadLine();
}
Run Code Online (Sandbox Code Playgroud)
但就我个人而言,我会这样做:
foreach (string line in File.ReadLines(path))
{
}
Run Code Online (Sandbox Code Playgroud)
有什么理由选择其中之一吗?
客观地:
\n\n第一个是逐条选择线路,然后您在流式传输数据时执行该过程。
第二个IEnumerable<string>立即生成,然后您可以开始处理这些行(来源MSDNReadAllLines - 我很抱歉首先将其混合)。
用处?:
\n\nyield在循环中while),直到您想随意返回为止IEnumerable<string>(即,在处理之前指定预期数据的信息),因此一开始会产生一些开销。但值得注意的是,IEnumerable与List. 一些值得阅读的好信息。以下是来自 MSDN 的用例ReadLines:
\n\n对文件执行 LINQ to Objects 查询以获取其行的过滤集。
\n\n使用 File.WriteAllLines(String,\xe2\x80\x82IEnumerable<String>) 方法将返回的行集合写入文件,或使用以下方法将它们附加到现有文件\n
\n\nFile.AppendAllLines(String,\xe2\x80\x82IEnumerable<String>) 方法。创建一个立即填充的集合实例,该实例采用 IEnumerable<T> 字符串集合作为其构造函数,例如 IList<T> 或 Queue<T>。
\n
| 归档时间: |
|
| 查看次数: |
1232 次 |
| 最近记录: |