StreamReader读取行范围

时间:2016-07-13 12:42:40

标签: c# streamreader

假设我有一个文件,想要读取这些行,它是:

   while( !streamReader.EndOfStream ) {
        var line = streamReader.ReadLine( );
   }

我如何只读取一系列行? 就像只有10到20的读数一样。

1 个答案:

答案 0 :(得分:11)

我建议在没有任何读者的情况下使用 Linq

  var lines = File
    .ReadLines(@"C:\MyFile.txt")
    .Skip(10)  // skip first 10 lines 
    .Take(10); // take next 20 - 10 == 10 lines

  ...

  foreach(string line in lines) {
    ... 
  }

如果您必须使用阅读器,您可以实现类似这样的内容

   // read top 20 lines...
   for (int i = 0; i < 20 && !streamReader.EndOfStream; ++i) {
     var line = streamReader.ReadLine();

     if (i < 10) // ...and skip first 10 of them
       continue;

     //TODO: put relevant code here
   }