Heim >Backend-Entwicklung >C++ >Was ist die effizienteste Methode zum Zählen von Zeilen in einer C#-Textdatei?

Was ist die effizienteste Methode zum Zählen von Zeilen in einer C#-Textdatei?

DDD
DDDOriginal
2025-01-11 08:36:44459Durchsuche

What's the Most Efficient Way to Count Lines in a C# Text File?

Effektive Methode zum Zählen von Zeilen in C#-Textdateien

Das Zählen der Anzahl der Zeilen in einer Textdatei ist eine häufige Aufgabe beim Programmieren. So erreichen Sie dies effizient in C#:

1. Basierend auf der Dateigröße (ineffizient, aber einfach)

Die Methode

File.ReadAllLines lädt die gesamte Datei in ein Array. Obwohl diese Methode einfach ist, ist sie bei großen Dateien sehr speicherintensiv. Wenn Sie beispielsweise mit einer 4-GB-Datei auf einem 32-Bit-System arbeiten, ist möglicherweise nicht genügend Speicher vorhanden, um das Array zuzuweisen.

<code class="language-csharp">var lineCount = File.ReadAllLines(@"C:\file.txt").Length;</code>

2. Zeileniterationsmethode (effizient)

Verwenden Sie eine File.OpenText- und while-Schleife, um die Datei Zeile für Zeile zu durchlaufen und dabei den Zähler zu erhöhen. Diese Methode ist effizienter als ReadAllLines und erfordert keine Zuweisung großer Arrays im Speicher.

<code class="language-csharp">var lineCount = 0;
using (var reader = File.OpenText(@"C:\file.txt"))
{
    while (reader.ReadLine() != null)
    {
        lineCount++;
    }
}</code>

Überlegungen zu Leistung und Speicher:

ReadAllLines Bei kleinen Dateien kann es aufgrund von Optimierungen schneller sein, bei großen Dateien wird es jedoch aufgrund der Speicherzuweisung deutlich langsamer. Andererseits ist die OpenText-Iteration hinsichtlich der Speichernutzung effizienter, ihre Leistung im Vergleich zu ReadAllLines hängt jedoch von der Dateigröße und der Systemarchitektur ab.

Das obige ist der detaillierte Inhalt vonWas ist die effizienteste Methode zum Zählen von Zeilen in einer C#-Textdatei?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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