Maison >développement back-end >C++ >Comment LINQ peut-il améliorer l'efficacité lors de la lecture de fichiers ligne par ligne en C# ?

Comment LINQ peut-il améliorer l'efficacité lors de la lecture de fichiers ligne par ligne en C# ?

Linda Hamilton
Linda Hamiltonoriginal
2025-01-05 01:25:40352parcourir

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

Lecture efficace de fichiers ligne par ligne en C# à l'aide de LINQ

Lors du traitement de fichiers texte où chaque ligne nécessite une gestion individuelle, StreamReader propose un solution simple. Cependant, pour une efficacité et une lisibilité améliorées, LINQ propose une approche plus élégante.

Pour éviter de charger l'intégralité du fichier en mémoire, envisagez d'utiliser un bloc itérateur :

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

Alternativement, pour un rendu plus simple version :

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

La fonction ReadFrom(...) renvoie une séquence évaluée paresseusement, évitant la mise en mémoire tampon des données. En combinant ReadFrom(...) avec d'autres opérations LINQ (par exemple, Where, Select), un traitement ligne par ligne efficace peut être obtenu sans sacrifier l'efficacité opérationnelle.

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