Heim >Backend-Entwicklung >C++ >„File.ReadLines()' vs. „File.ReadAllLines()': Welches eignet sich am besten zum Lesen großer Textdateien in C#?
Lesen großer Textdateien in C#: Leistungsvergleich von File.ReadLines()
und File.ReadAllLines()
File.ReadLines()
und File.ReadAllLines()
sind beide Methoden in C# zum Lesen von Textdateien, ihre Leistung unterscheidet sich jedoch erheblich.
File.ReadAllLines()
File.ReadAllLines()
liest die gesamte Datei auf einmal in den Speicher und gibt ein String-Array zurück. Diese Methode ist für kleine Dateien effizient, weist jedoch bei großen Dateien Probleme auf. Mit zunehmender Dateigröße erhöht sich die Zeit, die zum Lesen und Verarbeiten der gesamten Datei erforderlich ist, erheblich. Darüber hinaus verbraucht File.ReadAllLines()
viel Speicher, insbesondere beim Arbeiten mit Gigabyte-großen Dateien.
File.ReadLines()
File.ReadLines()
löst die Einschränkungen von File.ReadAllLines()
durch verzögertes Laden. Anstatt die gesamte Datei auf einmal in den Speicher einzulesen, wird ein IEnumerable<string>
zurückgegeben, mit dem Sie nach Bedarf jede Zeile der Datei durchlaufen können. Dieser Ansatz reduziert den Speicherbedarf und verbessert die Leistung bei der Verarbeitung großer Dateien.
Leistungsvergleich
Benchmarks zeigen, dass File.ReadLines()
bei großen Dateien eine bessere Leistung erbringt als File.ReadAllLines()
. Dieser Unterschied wird mit zunehmender Dateigröße deutlicher. Beispielsweise kann das Lesen einer 100-MB-Datei mit File.ReadAllLines()
mehrere Sekunden dauern, während File.ReadLines()
die Aufgabe in weniger als einer Sekunde erledigen kann.
Beispielverwendung
Verwenden Sie File.ReadLines()
, um Dateien zu lesen:
<code class="language-csharp">using System.IO; string path = "C:\mytxt.txt"; foreach (var line in File.ReadLines(path)) { // 处理每一行 }</code>
Verwenden Sie File.ReadAllLines()
, um Dateien zu lesen:
<code class="language-csharp">using System.IO; string path = "C:\mytxt.txt"; string[] lines = File.ReadAllLines(path); // 处理所有行</code>
Fazit
Bei großen Textdateien bietet File.ReadLines()
erhebliche Leistungsvorteile gegenüber File.ReadAllLines()
. Durch verzögertes Laden File.ReadLines()
wird der Speicherverbrauch reduziert und die Verarbeitungsgeschwindigkeit erhöht, ohne dass die Effizienz darunter leidet.
Das obige ist der detaillierte Inhalt von„File.ReadLines()' vs. „File.ReadAllLines()': Welches eignet sich am besten zum Lesen großer Textdateien in C#?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!