Pengoptimuman prestasi membaca fail C#: Perbandingan File.ReadLines() dan File.ReadAllLines()
Pengendalian fail yang cekap adalah penting dalam pengaturcaraan. Dalam C#, kedua-dua kaedah File.ReadLines()
dan File.ReadAllLines()
boleh membaca kandungan fail ke dalam tatasusunan rentetan, tetapi prestasinya berbeza dengan ketara apabila memproses fail besar.
File.ReadLines()
File.ReadLines()
mengembalikan IEnumerable<string>
, iaitu koleksi yang malas dimuatkan. Ini bermakna ia membaca fail baris demi baris, menjadikannya lebih cekap apabila bekerja dengan fail besar. Anda boleh menggunakan foreach
untuk menggelung setiap baris tanpa memuatkan keseluruhan fail ke dalam memori.
File.ReadAllLines()
File.ReadAllLines()
membaca keseluruhan fail sekaligus dan mengembalikan tatasusunan string[]
. Untuk fail besar, pendekatan ini kurang cekap kerana ia memerlukan memuatkan keseluruhan fail ke dalam memori, yang boleh menyebabkan kesesakan prestasi atau limpahan memori.
Perbandingan prestasi
Jadual berikut meringkaskan perbezaan prestasi utama antara File.ReadLines()
dan File.ReadAllLines()
:
方法 | 读取方式 | 大型文件性能 |
---|---|---|
`File.ReadLines()` | 逐行读取 | 更高效 |
`File.ReadAllLines()` | 一次性读取 | 效率较低 |
Contoh
Contoh kod berikut menunjukkan cara menggunakan File.ReadLines()
untuk memproses fail teks besar dan cara menggunakan File.ReadAllLines()
untuk memproses fail teks kecil:
<code class="language-csharp">// 处理大型文件 string[] lines = File.ReadLines("large.txt").Where(x => x.Contains("keyword")).ToArray(); // 处理小型文件 string[] lines = File.ReadAllLines("small.txt");</code>
Kesimpulan
Untuk fail besar, File.ReadLines()
ialah pilihan yang lebih baik kerana ia memberikan prestasi yang lebih baik dengan membaca fail secara berperingkat. File.ReadAllLines()
Masih berfungsi untuk fail kecil, di mana perbezaan prestasi adalah kurang kritikal.
Atas ialah kandungan terperinci File.ReadLines() vs. File.ReadAllLines(): Bilakah Anda Harus Memilih Yang Mana untuk Prestasi Optimum?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!