Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah LINQ Boleh Meningkatkan Kecekapan Apabila Membaca Fail Baris demi Baris dalam C#?
Bacaan Fail Baris demi Baris yang Cekap dalam C# Menggunakan LINQ
Apabila memproses fail teks di mana setiap baris memerlukan pengendalian individu, StreamReader menawarkan penyelesaian yang mudah. Walau bagaimanapun, untuk kecekapan dan kebolehbacaan yang lebih baik, LINQ menyediakan pendekatan yang lebih elegan.
Untuk mengelakkan memuatkan keseluruhan fail ke dalam ingatan, pertimbangkan untuk menggunakan blok lelaran:
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; } } }
Sebagai alternatif, untuk yang lebih mudah versi:
static IEnumerable<string> ReadFrom(string file) { string line; using(var reader = File.OpenText(file)) { while((line = reader.ReadLine()) != null) { yield return line; } } }
Fungsi ReadFrom(...) mengembalikan urutan yang dinilai dengan malas, mengelakkan data penimbalan. Dengan menggabungkan ReadFrom(...) dengan operasi LINQ lain (cth., Where, Select), pemprosesan baris demi baris yang cekap boleh dicapai tanpa mengorbankan kecekapan operasi.
Atas ialah kandungan terperinci Bagaimanakah LINQ Boleh Meningkatkan Kecekapan Apabila Membaca Fail Baris demi Baris dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!