我正在使用C#7读取文本文件中的所有行,如下所示:
using (StreamReader reader = File.OpenText(file)) {
String line;
while ((line = reader.ReadLine()) != null) {
}
}
对于每一行我还需要获取行号。
StreamReader似乎没有获取行号的方法。
这样做的最佳方式是什么?
答案 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++;
}
}