正确的方法来确定.NET中文件中的行数

时间:2010-02-16 03:30:50

标签: .net file

这个问题非常简单,现在可能是.NET专家的答案=)

所以它来了......什么是正确的方法(.NET语言独立,以确定文本文件中存在的行数(非空白),而不必检查直到行为空(我当前的方法) ?

提前致谢

3 个答案:

答案 0 :(得分:4)

借鉴here

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

答案 1 :(得分:2)

var path = @"C:\file.txt";
var lines = File.ReadAllLines(path);
var lineCount = lines.Count(s => s != "");

或者,可读性稍差,一气呵成:

var lines = File.ReadAllLines(@"C:\file.txt").Count(s => s != "");

答案 2 :(得分:1)

文件作为流读入,因此您必须全部阅读以确定您正在尝试的内容。

您可以扫描字节,或在FileReader上执行ReadToEnd以获取字符串表示,以查找Environment.NewLine实例并对其进行计数。

如果您将文件读入字符串,则可以使用Regex类来计算Environment.NewLine的匹配项的附加好处

修改 我喜欢使用File.ReadAllLines并使用结果长度

的cxfx想法