Maison >développement back-end >C++ >Quelle est la manière la plus efficace de compter les lignes dans un fichier texte C# ?

Quelle est la manière la plus efficace de compter les lignes dans un fichier texte C# ?

DDD
DDDoriginal
2025-01-11 08:36:44419parcourir

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

Méthode efficace pour compter les lignes dans les fichiers texte C#

Compter le nombre de lignes dans un fichier texte est une tâche courante en programmation. Voici comment y parvenir efficacement en C# :

1. Basé sur la taille du fichier (inefficace mais simple)

La méthode

File.ReadAllLines charge le fichier entier dans un tableau. Bien que simple, cette méthode est très gourmande en mémoire pour les fichiers volumineux. Par exemple, si vous travaillez avec un fichier de 4 Go sur un système 32 bits, il se peut qu'il n'y ait pas suffisamment de mémoire pour allouer la baie.

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

2. Méthode d'itération de ligne (efficace)

Utilisez une boucle File.OpenText et while pour parcourir le fichier ligne par ligne, en incrémentant le compteur. Cette méthode est plus efficace que ReadAllLines et ne nécessite pas d'allouer de grands tableaux en mémoire.

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

Considérations relatives aux performances et à la mémoire :

ReadAllLines Pour les petits fichiers, cela peut être plus rapide en raison des optimisations, mais pour les gros fichiers, cela deviendra considérablement plus lent en raison de l'allocation de mémoire. D'un autre côté, l'itération OpenText est plus efficace en termes d'utilisation de la mémoire, mais ses performances par rapport à ReadAllLines dépendent de la taille du fichier et de l'architecture du système.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn