gpt4 book ai didi

c# - 确定文本文件中的行数

转载 作者:IT王子 更新时间:2023-10-29 03:29:51 26 4
gpt4 key购买 nike

是否有一种简单的方法来以编程方式确定文本文件中的行数?

最佳答案

严重迟来的编辑:如果您使用的是 .NET 4.0 或更高版本

File 类有一个新的 ReadLines懒惰地枚举行而不是像 ReadAllLines 那样贪婪地将它们全部读入数组的方法。所以现在您可以通过以下方式兼顾效率和简洁:

var lineCount = File.ReadLines(@"C:\file.txt").Count();

原始答案

如果你不太在意效率,你可以简单地写:

var lineCount = File.ReadAllLines(@"C:\file.txt").Length;

要获得更有效的方法,您可以这样做:

var lineCount = 0;
using (var reader = File.OpenText(@"C:\file.txt"))
{
while (reader.ReadLine() != null)
{
lineCount++;
}
}

编辑:回应关于效率的问题

我说第二个更有效的原因是关于内存使用,不一定是速度。第一个将文件的全部内容加载到一个数组中,这意味着它必须至少分配与文件大小一样多的内存。第二个只是一次循环一行,因此它永远不必一次分配多于一行的内存。这对于小文件并不重要,但对于较大的文件可能是个问题(如果您尝试在 32 位系统上查找 4GB 文件中的行数,例如,根本就不够用户模式地址空间来分配这么大的数组)。

就速度而言,我不希望其中有很多。 ReadAllLines 可能有一些内部优化,但另一方面它可能必须分配大量内存。我猜 ReadAllLines 对于小文件来说可能更快,但对于大文件来说要慢得多;尽管唯一的判断方法是使用秒表或代码分析器对其进行测量。

关于c# - 确定文本文件中的行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/119559/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com