Rumah >pembangunan bahagian belakang >C++ >`File.ReadLines() vs. File.ReadAllLines(): Bilakah Saya Harus Menggunakan Yang Mana untuk Membaca Fail Teks dalam C#?`
Perbandingan kaedah File.ReadLines()
dan File.ReadAllLines()
dalam C#: Bila hendak menggunakan yang mana untuk membaca fail teks?
Apabila memproses fail teks dalam C#, File.ReadLines()
dan File.ReadAllLines()
ialah dua kaedah yang biasa digunakan untuk membaca kandungan fail. Kedua-duanya mengembalikan tatasusunan rentetan, dengan setiap elemen dalam tatasusunan mewakili baris fail, tetapi mereka mempunyai perbezaan prestasi yang ketara.
File.ReadAllLines()
File.ReadAllLines()
akan membaca keseluruhan fail ke dalam memori sekaligus dan kemudian mengembalikan tatasusunan rentetan. Kaedah ini sangat cekap untuk fail bersaiz kecil atau sederhana, tetapi menjadi kurang cekap untuk fail besar.
File.ReadLines()
Sebaliknya, kaedah File.ReadLines()
mengembalikan objek IEnumerable<string>
yang menyokong pemuatan fail yang malas. Ini bermakna ia tidak memuatkan keseluruhan fail ke dalam memori sekaligus, menjadikannya pilihan yang lebih baik apabila bekerja dengan fail besar, terutamanya dalam senario di mana prestasi adalah kritikal.
Perbezaan Prestasi
Seperti yang dinyatakan sebelum ini, File.ReadLines()
berprestasi jauh lebih baik daripada File.ReadAllLines()
untuk fail besar. Ini kerana File.ReadLines()
membaca fail dalam ketulan dan mengembalikan baris secara berperingkat, membolehkan data diproses dengan segera. File.ReadAllLines()
, sebaliknya, perlu menunggu sehingga keseluruhan fail dimuatkan ke dalam memori sebelum mengembalikan tatasusunan, yang boleh menyebabkan kesesakan prestasi dan penggunaan memori yang tinggi, terutamanya apabila berurusan dengan fail besar.
Contoh penggunaan
Contoh penggunaan File.ReadAllLines()
:
<code class="language-csharp">string[] lines = File.ReadAllLines("C:\mytxt.txt"); foreach (string line in lines) { // 处理每一行 }</code>
Contoh penggunaan File.ReadLines()
:
<code class="language-csharp">foreach (string line in File.ReadLines("C:\mytxt.txt")) { // 处理每一行(按读取顺序) }</code>
Ringkasan
Untuk fail kecil, perbezaan prestasi antara menggunakan File.ReadAllLines()
atau File.ReadLines()
adalah diabaikan. Walau bagaimanapun, apabila berurusan dengan fail besar, File.ReadLines()
menjadi pilihan yang lebih baik kerana mekanisme pemuatannya yang malas, memastikan prestasi optimum dan kecekapan penggunaan memori.
Atas ialah kandungan terperinci `File.ReadLines() vs. File.ReadAllLines(): Bilakah Saya Harus Menggunakan Yang Mana untuk Membaca Fail Teks dalam C#?`. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!