Question

Doublon possible :
C# Lire un fichier ligne par ligne
Comment parcourir les lignes d'un TextReader ?

On me donne un .NET Lecteur de texte (une classe capable de lire une série séquentielle de caractères).Comment puis-je parcourir son contenu par ligne ?

Était-ce utile?

La solution

Voulez-vous dire quelque chose comme ça?

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

Autres conseils

Vous pouvez créer très facilement une méthode d'extension afin de pouvoir utiliser foreach:

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

Notez que ceci ne le fera pas fermez le lecteur pour vous à la fin.

Vous pouvez alors utiliser :

foreach (string line in reader.ReadLines())

MODIFIER:Comme indiqué dans les commentaires, c'est paresseux.Il ne lira qu'une ligne à la fois, plutôt que de lire toutes les lignes en mémoire.

La solution non paresseuse que j'ai pour le moment:

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

Vous l'utiliseriez comme ceci:

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

ou

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());
        }
    }
}

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top