Optimisation des performances de lecture de fichiers C# : comparaison de File.ReadLines() et File.ReadAllLines()
Une gestion efficace des fichiers est cruciale en programmation. En C#, les méthodes File.ReadLines()
et File.ReadAllLines()
peuvent lire le contenu d'un fichier dans un tableau de chaînes, mais leurs performances diffèrent considérablement lors du traitement de fichiers volumineux.
File.ReadLines()
File.ReadLines()
renvoie un IEnumerable<string>
, qui est une collection chargée paresseusement. Cela signifie qu'il lit le fichier ligne par ligne, ce qui le rend plus efficace lorsque vous travaillez avec des fichiers volumineux. Vous pouvez utiliser foreach
pour parcourir chaque ligne sans charger l'intégralité du fichier en mémoire.
File.ReadAllLines()
File.ReadAllLines()
lit l'intégralité du fichier à la fois et renvoie un tableau de string[]
. Pour les fichiers volumineux, cette approche est moins efficace car elle nécessite de charger l’intégralité du fichier en mémoire, ce qui peut entraîner des goulots d’étranglement en termes de performances, voire des débordements de mémoire.
Comparaison des performances
Le tableau suivant résume les principales différences de performances entre File.ReadLines()
et File.ReadAllLines()
:
方法 | 读取方式 | 大型文件性能 |
---|---|---|
`File.ReadLines()` | 逐行读取 | 更高效 |
`File.ReadAllLines()` | 一次性读取 | 效率较低 |
Exemple
Les exemples de code suivants montrent comment utiliser File.ReadLines()
pour traiter des fichiers texte volumineux et comment utiliser File.ReadAllLines()
pour traiter de petits fichiers texte :
<code class="language-csharp">// 处理大型文件 string[] lines = File.ReadLines("large.txt").Where(x => x.Contains("keyword")).ToArray(); // 处理小型文件 string[] lines = File.ReadAllLines("small.txt");</code>
Conclusion
Pour les fichiers volumineux, File.ReadLines()
est un meilleur choix car il offre de meilleures performances en lisant le fichier de manière incrémentielle. File.ReadAllLines()
Fonctionne toujours pour les petits fichiers, où la différence de performances est moins critique.
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!