Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Memadam Talian dengan Cekap daripada Fail Teks Besar dalam C#?

Bagaimanakah Saya Boleh Memadam Talian dengan Cekap daripada Fail Teks Besar dalam C#?

Barbara Streisand
Barbara Streisandasal
2025-01-14 09:08:43311semak imbas

How Can I Efficiently Delete Lines from Large Text Files in C#?

Kaedah pemadaman baris fail teks C# yang cekap

Apabila memproses fail teks, barisan tertentu selalunya perlu dipadamkan. Artikel ini meneroka penyelesaian yang cekap untuk menyelesaikan tugas ini dalam C#, terutamanya untuk memproses fail teks yang besar.

Ikhtisar Penyelesaian

Skim ini mencipta fail sementara dan secara terpilih menyalin baris daripada fail asal ke fail sementara, tidak termasuk baris untuk pemadaman. Selepas baris sasaran diproses, fail sementara menggantikan fail asal, dengan itu mengeluarkan baris yang tidak diperlukan.

Pelaksanaan kod

<code class="language-csharp">string tempFile = Path.GetTempFileName();

using (StreamReader sr = new StreamReader("file.txt"))
using (StreamWriter sw = new StreamWriter(tempFile))
{
    string line;

    while ((line = sr.ReadLine()) != null)
    {
        if (line != "removeme")
            sw.WriteLine(line);
    }
}

File.Delete("file.txt");
File.Move(tempFile, "file.txt");</code>

Kaedah ini memastikan bahawa hanya baris yang diperlukan disimpan sambil mengecualikan baris sasaran daripada fail yang dikemas kini.

Pertimbangan lain

  • Prestasi: Untuk fail besar, kaedah ini meminimumkan penggunaan memori dan I/O cakera dengan memproses talian secara berurutan.
  • Pengekodan: Kod menganggap bahawa fail teks menggunakan pengekodan UTF-8. Laraskan pengekodan mengikut keperluan.
  • Pengendalian memori: Untuk fail yang lebih kecil, pengendalian memori mungkin lebih cekap. Pertimbangkan perkara berikut:
<code class="language-csharp">File.WriteAllLines("file.txt",
    File.ReadLines("file.txt").Where(l => l != "removeme").ToList());</code>

Kaedah ini mengelak daripada mencipta fail sementara, tetapi memerlukan pelaksanaan segera menggunakan ToList().

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memadam Talian dengan Cekap daripada Fail Teks Besar dalam 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