Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah LINQ Boleh Meningkatkan Kecekapan Apabila Membaca Fail Baris demi Baris dalam C#?

Bagaimanakah LINQ Boleh Meningkatkan Kecekapan Apabila Membaca Fail Baris demi Baris dalam C#?

Linda Hamilton
Lepaskan: 2025-01-05 01:25:40
asal
380 orang telah melayarinya

How Can LINQ Improve Efficiency When Reading Files Line by Line in 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;
        }
    }
}
Salin selepas log masuk

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;
        }
    }
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan