读取文件时获取行号

时间:2017-10-18 17:46:33

标签: c#

我正在使用C#7读取文本文件中的所有行,如下所示:

using (StreamReader reader = File.OpenText(file)) {    
  String line;    
  while ((line = reader.ReadLine()) != null) {

  }          
}   

对于每一行我还需要获取行号。

StreamReader似乎没有获取行号的方法。

这样做的最佳方式是什么?

4 个答案:

答案 0 :(得分:2)

您应该使用自己的局部变量,例如:

using (StreamReader reader = File.OpenText(file)) {    
      String line;    
      int lineNum=0;
      while ((line = reader.ReadLine()) != null) {
         ++lineNum;
      }          
    }   

答案 1 :(得分:2)

我只是创建一个整数来跟踪自己的行号。

using (StreamReader reader = File.OpenText(file)) {    
    var lineNumber = 0;
    String line;    
    while ((line = reader.ReadLine()) != null) {
        ...

        lineNumber++;
    }          
}  

Microsoft还使用这样的变量来计算其中一个示例中的行:https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/file-system/how-to-read-a-text-file-one-line-at-a-time

答案 2 :(得分:1)

除了此处的其他解决方案,我还想使用File.ReadAllLines(string)创建string[]结果,然后for (int i = 0; i < result.Length; i++)...

答案 3 :(得分:0)

您可以自己计算行号:

using (StreamReader reader = File.OpenText(file)) {    
  String line;
  int n = 0;
  while ((line = reader.ReadLine()) != null) {
    n++;
  }          
}