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

标签 c# .net file-io

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

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

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

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

最佳答案

IEnumerable<string> 中读取一次,然后将其用于第二行和最后一行。

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

在您当前的代码中,您正在读取两次,如果您希望文件在第一次读取和第二次读取之间被修改,那么您必须读取文件两次。

关于c# - 读取文件中的第一行和最后一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19667561/

相关文章:

c - 记住最后执行的命令的简单历史记录

c# - 如何在 Convert.TryFromBase64String() 中使用 Span?

.net - .NET 文件的指令级调试

java - 整理 "buckets"中的文件

c# - 如果我有 PropertyInfo 和带有此扩展变量的对象,我可以调用扩展方法吗?

c# - 适用于 .NET 的 Python 中的可空类型 (C#)

c - 如何将文件中的数据加载到C中的float*中

c# - 使用 Entity Framework 持久化状态模式

c# - 如何等待 Dispatcher Invoke 的结果?

c# - 使用 SocketAsyncEventArgs 时是否可以删除 ExecutionContext 和 Thread 分配?