Domanda

Possibile duplicato:
C# Lettura di un file riga per riga
Come eseguire il loop sulle righe da un TextReader?

Mi viene fornito un file .NET Lettore di testo (una classe in grado di leggere una serie sequenziale di caratteri).Come posso ripetere il suo contenuto per riga?

È stato utile?

Soluzione

Intendi qualcosa come questo?

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

Altri suggerimenti

È possibile creare molto facilmente un metodo di estensione da poter utilizzare foreach:

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

Tieni presente che questo non chiudi il lettore per te alla fine.

È quindi possibile utilizzare:

foreach (string line in reader.ReadLines())

MODIFICARE:Come notato nei commenti, questo è pigro.Leggerà solo una riga alla volta, anziché leggere tutte le righe in memoria.

La soluzione non pigra che ho al momento:

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

Lo useresti in questo modo:

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

O

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());
        }
    }
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top