Rumah >pembangunan bahagian belakang >C++ >Apakah Cara Paling Cekap untuk Mengira Baris dalam Fail Teks C#?

Apakah Cara Paling Cekap untuk Mengira Baris dalam Fail Teks C#?

DDD
DDDasal
2025-01-11 08:36:44421semak imbas

What's the Most Efficient Way to Count Lines in a C# Text File?

Kaedah pengiraan baris yang berkesan dalam fail teks C#

Mengira bilangan baris dalam fail teks ialah tugas biasa dalam pengaturcaraan. Begini cara untuk mencapai ini dengan cekap dalam C#:

1. Berdasarkan saiz fail (tidak cekap tetapi mudah)

Kaedah

File.ReadAllLines memuatkan keseluruhan fail ke dalam tatasusunan. Walaupun mudah, kaedah ini sangat intensif memori untuk fail besar. Sebagai contoh, bekerja dengan fail 4GB pada sistem 32-bit, mungkin tidak mempunyai memori yang mencukupi untuk memperuntukkan tatasusunan.

<code class="language-csharp">var lineCount = File.ReadAllLines(@"C:\file.txt").Length;</code>

2. Kaedah lelaran baris (cekap)

Gunakan gelung File.OpenText dan while untuk lelaran ke atas fail baris demi baris, menambah pembilang. Kaedah ini lebih cekap daripada ReadAllLines dan tidak memerlukan memperuntukkan tatasusunan yang besar dalam ingatan.

<code class="language-csharp">var lineCount = 0;
using (var reader = File.OpenText(@"C:\file.txt"))
{
    while (reader.ReadLine() != null)
    {
        lineCount++;
    }
}</code>

Pertimbangan prestasi dan ingatan:

ReadAllLines Untuk fail kecil ia mungkin lebih pantas disebabkan pengoptimuman, tetapi untuk fail besar ia akan menjadi lebih perlahan dengan ketara disebabkan peruntukan memori. Sebaliknya, lelaran OpenText lebih cekap dari segi penggunaan memori, tetapi prestasinya berbanding ReadAllLines bergantung pada saiz fail dan seni bina sistem.

Atas ialah kandungan terperinci Apakah Cara Paling Cekap untuk Mengira Baris dalam Fail Teks C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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