「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > C#内の大きなテキストファイルから行を効率的に削除するにはどうすればよいですか?

C#内の大きなテキストファイルから行を効率的に削除するにはどうすればよいですか?

2025-03-22に投稿されました
ブラウズ:931

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

c#効率的なテキストファイル行削除方法

]]

テキストファイルを処理する場合、特定の行を削除する必要があることがよくあります。この記事では、特に大規模なテキストファイルを処理するために、このタスクをC#に実装するための効率的なソリューションについて説明します。

ソリューションの概要

このスキームは、一時ファイルを作成し、削除する行を除く、元のファイルから行を元のファイルから選択的にコピーします。ターゲットラインを処理した後、一時ファイルは元のファイルを置き換え、それにより不必要な行を削除します。

コード実装

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");

この方法により、更新されたファイルからターゲットラインを除外しながら、必要な線のみが保持されることが保証されます。

その他の考慮事項

  • パフォーマンス:大きなファイルの場合、この方法は、ラインを順次処理することにより、メモリの使用量とディスクI/Oを最小限に抑えます。
  • エンコード:コードは、テキストファイルがUTF-8を使用してエンコードされていると想定しています。必要に応じてエンコーディングを調整します。
  • メモリ処理:小さいファイルの場合、メモリ処理がより効率的になる場合があります。以下を検討してください:
File.WriteAllLines("file.txt",
    File.ReadLines("file.txt").Where(l => l != "removeme").ToList());
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3