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# ?
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!