通过搜索 crlf (0d0a) 来计算行数

Count line by searching crlf (0d0a)

我想根据 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;
}
string content = System.IO.File.ReadAllText( fileName );
int numMatches = content.Select((c, i) => content.Substring(i)).Count(sub => sub.StartsWith(Environment.NewLine));

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