我需要阅读 - 阅读.NET 4.5应用程序中日志文件的第一行和最后一行
那就是。
日志文件在每一行都有时间戳,我想找到最年轻的(第一行)和最旧的(最后一行)时间戳。这不是一项艰巨的任务,但我想知道是否有一种聪明的方法。
目前实现看起来像这样(我实际上需要日志文件的第二行,因为第一行是空白的,因此是Skip()
):
string firstLine = File.ReadLines(logFile).Skip(1);
string lastLine = File.ReadLines(logFile).Last();
这个非常简单的代码可以有任何改进吗?
答案 0 :(得分:6)
在IEnumerable<string>
中读取一次,然后将其用于第二行和最后一行。
var lines = File.ReadLines(logFile);
string firstLine = lines.Skip(1);
string lastLine = lines.Last();
在当前代码中,您正在进行两次读取,如果您希望在第一次读取和第二次读取之间修改文件,则必须读取文件两次。
答案 1 :(得分:1)
已经找到了最明显的解决方案File.ReadLines。
如果是大文件,则可以选择:
此处的ReverseLineReader类: https://stackoverflow.com/a/452945/2254877