Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Memadam Baris dengan Cekap dari Fail Teks dalam C#?

Bagaimana untuk Memadam Baris dengan Cekap dari Fail Teks dalam C#?

Patricia Arquette
Patricia Arquetteasal
2025-01-14 08:41:43247semak imbas

How to Efficiently Delete a Line from a Text File in C#?

Memadamkan Baris dengan Cekap daripada Fail Teks C#

Mengalih keluar baris tertentu daripada fail teks dalam C# ialah tugas biasa. Berikut ialah dua kaedah: pendekatan mudah dan penyelesaian berasaskan LINQ yang lebih cekap.

Kaedah 1: Kaedah Fail Sementara

Kaedah ini mencipta fail sementara, menyalin kandungan fail asal tidak termasuk baris yang hendak dialih keluar, kemudian menggantikan fail asal. Ini sesuai untuk fail yang sangat besar yang memuatkan segala-galanya ke dalam memori boleh menyebabkan masalah.

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

using (var reader = new StreamReader("file.txt"))
using (var writer = new StreamWriter(tempFile))
{
    string line;
    while ((line = reader.ReadLine()) != null)
    {
        if (line != "removeme") // Replace "removeme" with your target line
            writer.WriteLine(line);
    }
}

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

Kaedah 2: Kaedah LINQ (Lebih Cekap untuk Fail Yang Lebih Kecil)

Untuk fail yang lebih kecil, LINQ menawarkan penyelesaian yang lebih ringkas dan berkemungkinan lebih pantas. Ia menapis baris untuk disimpan, kemudian menulisnya kembali ke fail. Kelebihan utama ialah pelaksanaan tertunda – fail tidak diproses sehingga File.WriteAllLines dipanggil.

<code class="language-csharp">string tempFile = Path.GetTempFileName();
var linesToKeep = File.ReadLines("fileName").Where(l => l != "removeme"); // Replace "fileName" and "removeme" as needed

File.WriteAllLines(tempFile, linesToKeep);

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

Pertimbangan Penting:

  • Saiz Fail: Untuk fail yang sangat besar, pendekatan fail sementara biasanya lebih disukai untuk mengelakkan keletihan memori. Untuk fail yang lebih kecil, kaedah LINQ selalunya lebih cekap.
  • Pengekodan: Contoh menganggap pengekodan UTF-8. Laraskan sewajarnya jika fail anda menggunakan pengekodan yang berbeza.
  • Pengendalian Ralat: Kod pengeluaran harus termasuk pengendalian ralat (cth., try-catch blok) untuk mengurus kemungkinan pengecualian seperti FileNotFoundException.

Ingat untuk menggantikan "file.txt" dan "removeme" dengan laluan fail sebenar anda dan baris yang ingin anda padamkan.

Atas ialah kandungan terperinci Bagaimana untuk Memadam Baris dengan Cekap dari Fail Teks 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