【问题标题】:Count lines in a text without empty liines [duplicate]计算文本中没有空行的行数[重复]
【发布时间】:2023-03-06 08:32:01
【问题描述】:

我正在使用下一个代码来计算我拥有的文本中的行数。 它工作正常,但我不想计算空行。 我该怎么做,但要保存当前的代码格式?

var lineCount = 0;
using (var readerlines = File.OpenText(strfilename))
{
    while (readerlines.ReadLine() != null)
    {
        lineCount++;
    }
}

【问题讨论】:

  • 我建议使用 LINQ 和 string.IsNullOrWhiteSpace

标签: c#


【解决方案1】:

你可以这样试试:

int lineCount = File.ReadLines(@"yourfile.txt")
                    .Count(line => !string.IsNullOrWhiteSpace(line));

【讨论】:

    【解决方案2】:

    检查该行是否不是空字符串

    var lineCount = 0;
    string line = string.Empty;
    using (var readerlines = File.OpenText(strfilename))
    {
        while ((line = readerlines.ReadLine()) != null)
        {
            if (!line.Equals(string.Empty))
            {
                lineCount++;
            }   
        }
    }
    

    【讨论】:

    • 我在第一个示例中遇到了错误(在单词 equals 上),第二个给我错误的行号(非常低)
    • @CobyAbutbul 是什么错误?
    • @CobyAbutbul 从未挖掘过,应该等于大写字母
    • 效果很好。谢谢
    【解决方案3】:

    或者这个:

    string data = File.ReadAllText(strfilename);
    string[] lines = data.Split(new char[] {'\n' }, StringSplitOptions.RemoveEmptyEntries);
    int line_count = lines.Length;
    

    简而言之:

    int line_count = File.ReadAllText(strfilename).Split(new char[] {'\n' }, StringSplitOptions.RemoveEmptyEntries).Length;
    

    【讨论】:

      猜你喜欢
      • 2020-07-28
      • 2012-01-31
      • 2020-12-05
      • 2020-01-27
      • 1970-01-01
      • 1970-01-01
      • 2015-06-27
      • 2019-08-12
      • 1970-01-01
      相关资源
      最近更新 更多