Heim > Backend-Entwicklung > C++ > Wie kann LINQ die Effizienz beim zeilenweisen Lesen von Dateien in C# verbessern?

Wie kann LINQ die Effizienz beim zeilenweisen Lesen von Dateien in C# verbessern?

Linda Hamilton
Freigeben: 2025-01-05 01:25:40
Original
350 Leute haben es durchsucht

How Can LINQ Improve Efficiency When Reading Files Line by Line in C#?

Effizientes zeilenweises Lesen von Dateien in C# mit LINQ

Bei der Verarbeitung von Textdateien, bei denen jede Zeile eine individuelle Bearbeitung erfordert, bietet StreamReader eine einfache Lösung. Für eine verbesserte Effizienz und Lesbarkeit bietet LINQ jedoch einen eleganteren Ansatz.

Um zu vermeiden, dass die gesamte Datei in den Speicher geladen wird, sollten Sie die Verwendung eines Iteratorblocks in Betracht ziehen:

static IEnumerable<SomeType> ReadFrom(string file) {
    string line;
    using(var reader = File.OpenText(file)) {
        while((line = reader.ReadLine()) != null) {
            SomeType newRecord = /* parse line */
            yield return newRecord;
        }
    }
}
Nach dem Login kopieren

Alternativ für eine einfachere Lösung Version:

static IEnumerable<string> ReadFrom(string file) {
    string line;
    using(var reader = File.OpenText(file)) {
        while((line = reader.ReadLine()) != null) {
            yield return line;
        }
    }
}
Nach dem Login kopieren

Die ReadFrom(...)-Funktion gibt eine verzögert ausgewertete Sequenz zurück und vermeidet so die Datenpufferung. Durch die Kombination von ReadFrom(...) mit anderen LINQ-Operationen (z. B. Where, Select) kann eine effiziente zeilenweise Verarbeitung ohne Einbußen bei der betrieblichen Effizienz erreicht werden.

Das obige ist der detaillierte Inhalt vonWie kann LINQ die Effizienz beim zeilenweisen Lesen von Dateien in C# verbessern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage