统计文本文件中的行数

5

我正在使用C#编程并使用Windows Forms。

我有一个文本文件,想要计算其中所有行的数量。

Peter;25

John;31

Jane;22

这是三行,我想要计数,例如。

3个回答

6
最好的方法是使用类似以下的方式:
var count = File.ReadLines("file.txt").Count();

这只能在.NET 4中使用,但是只会每次读取一行。如果你愿意一次性将整个文件加载到内存中,你可以使用:

var count = File.ReadAllLines("file.txt").Length;

请注意,如果文件很大(或者位于网络驱动器等位置),这可能需要很长时间,此时您应该在 UI 线程之外执行操作。

1
枚举所有行定义在哪里? - Simon Mourier
我使用了 var count = File.ReadAllLines("file.txt").Length;,它非常好用,非常感谢! - user599807
@Simon:我的错误,应该是File.ReadLines。我已经修正了答案。但仅限于.NET 4。 - Jon Skeet

2
如果文件不太大,你可以这样做:
File.ReadAllLines(filePath).Length;

(这将分配整个文件,因此请确保性能不是问题)

谢谢您的回答,它起作用了,但我使用了上面的答案。 - user599807

1
        string fileName = @"X:\Testfolder\countthis.txt";
        int lineCount = 0;

        FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read);

        StreamReader reader = new StreamReader(fs);
        Assert.Fail();

        while (reader.ReadLine() != null)
            lineCount++;
        return lineCount; 

你应该使用C#的using语句或确保在FileStream上调用Dispose。 - Simon Mourier
哦,是的,我没有考虑到那个:-) 对不起。 - Morten

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接