Frage

Mögliches Duplikat:
C# Lesen einer Datei Zeile für Zeile
Wie kann man Zeilen aus einem TextReader durchlaufen?

Ich bekomme ein .NET TextReader (eine Klasse, die eine sequentielle Reihe von Zeichen lesen kann).Wie kann ich den Inhalt zeilenweise durchlaufen?

War es hilfreich?

Lösung

Meinst du so etwas?

string line = null;
while((line = reader.ReadLine()) != null) 
{
    // do something with line
}

Andere Tipps

Sie können ganz einfach eine Erweiterungsmethode erstellen, die Sie verwenden können foreach:

public static IEnumerable<string> ReadLines(this TextReader reader)
{
    string line = null;
    while((line = reader.ReadLine()) != null) 
    {
        yield return line;
    }
}

Beachten Sie, dass dies Gewohnheit Schließen Sie am Ende den Reader für Sie.

Sie können dann Folgendes verwenden:

foreach (string line in reader.ReadLines())

BEARBEITEN:Wie in den Kommentaren erwähnt, ist das faul.Es wird jeweils nur eine Zeile gelesen, anstatt alle Zeilen in den Speicher einzulesen.

Die nicht faule Lösung, die ich im Moment habe:

foreach(string line in source.ReadToEnd().Split(Environment.NewLine.ToArray(),StringSplitOptions.None))

Sie würden es so verwenden:

string line;
while ((line = myTextReader.ReadLine()) != null)
{
    //do whatever with "line";
}

ODER

string Myfile = @"C:\MyDocument.txt";
using(FileStream fs = new FileStream(Myfile, FileMode.Open, FileAccess.Read))
{                    
    using(StreamReader sr = new StreamReader(fs))
    {
        while(!sr.EndOfStream)
        {
            Console.WriteLine(sr.ReadLine());
        }
    }
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top