读取文件中的第一行和最后一行

时间:2013-10-29 19:35:22

标签: c# .net file-io

我需要阅读 - 阅读.NET 4.5应用程序中日志文件的第一行和最后一行 那就是。
日志文件在每一行都有时间戳,我想找到最年轻的(第一行)和最旧的(最后一行)时间戳。这不是一项艰巨的任务,但我想知道是否有一种聪明的方法。

目前实现看起来像这样(我实际上需要日志文件的第二行,因为第一行是空白的,因此是Skip()):

string firstLine = File.ReadLines(logFile).Skip(1);
string lastLine = File.ReadLines(logFile).Last();

这个非常简单的代码可以有任何改进吗?

2 个答案:

答案 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