2012-10-02 4 views
10

Jak wykonać pętlę nad liniami od TextReadersource?Jak zapętlić linie z obiektu TextReader?

Próbowałem

foreach (var line in source) 

Ale mam błąd

oświadczenie foreach nie może działać na zmiennych typu 'System.IO.TextReader' bo 'System.IO.TextReader' nie zawiera definicja publicznej dla „GetEnumerator”

+1

http: // stackoverflow.com/questions/286533/filestream-streamreader-problem-in-c-sharp –

+1

A co nie działało? –

+0

Albo nawet http://stackoverflow.com/questions/1271225/c-sharp-reading-a-file-line-by-line też. – dash

Odpowiedz

37
string line; 
while ((line = myTextReader.ReadLine()) != null) 
{ 
    DoSomethingWith(line); 
} 
+3

Bardzo pomocne. Po raz pierwszy zobaczysz przypisanie i sprawdzisz w tym samym czasie taką pętlę; Nie pomyślałbym o zrobieniu tego w ten sposób. –

4

Można spróbować z tego kodu - na podstawie ReadLine method

 string line = null; 
     System.IO.TextReader readFile = new StreamReader("...."); //Adjust your path 
     while (true) 
     { 
      line = readFile.ReadLine(); 
      if (line != null) 
      { 
       MessageBox.Show (line); 
      } 
     } 
     readFile.Close(); 
     readFile = null; 
+4

Nie widzę, jak wyjść z pętli while ... – flq