C# 通过搜索crlf(0d0a)对行进行计数

C# 通过搜索crlf(0d0a)对行进行计数,c#,.net,newline,C#,.net,Newline,我想根据crlf(0D0A)计数来计算文件中的行数。我的当前代码仅根据cr(0D)计算行数。有人能提出建议吗 public static int Countline(string file) { var lineCount = 0; using (var reader = File.OpenText(file)) { while (reader.ReadLine() != null) { lineCount++;

我想根据
crlf
0D0A
)计数来计算文件中的行数。我的当前代码仅根据
cr
0D
)计算行数。有人能提出建议吗

public static int Countline(string file)
{
    var lineCount = 0;
    using (var reader = File.OpenText(file))
    {
        while (reader.ReadLine() != null)
        {
            lineCount++;
         }
    }
    return lineCount;
}

用法:

Countline("text.txt", "\r\n");
public static int Countline(string file, string lineSeperator)
{
    string text = File.ReadAllText(file);

    return System.Text.RegularExpressions.Regex.Matches(text, lineSeperator).Count;
}
方法:

Countline("text.txt", "\r\n");
public static int Countline(string file, string lineSeperator)
{
    string text = File.ReadAllText(file);

    return System.Text.RegularExpressions.Regex.Matches(text, lineSeperator).Count;
}

注意,我使用的是
Environment.NewLine
作为行尾,但如果愿意,可以替换为整个字符串。

可能重复:使用正确的编码将其转换为字节数组。然后查找使用for循环的任何CR LF(0x0D 0x0A)。您可以使用String.Split
foo.Split(new[]{Environment.NewLine},StringSplitOptions.removemptyentries)不是重复的。most仅搜索/r或/n。我需要一起搜索,而不是分开。这是一个很好的步骤,但有内存限制,因为它首先读取文件中的所有行。我在一个文件中有数千个数据。