ホームページ > バックエンド開発 > C++ > C# でテキスト ファイルから行を効率的に削除する方法

C# でテキスト ファイルから行を効率的に削除する方法

Patricia Arquette
リリース: 2025-01-14 08:41:43
オリジナル
246 人が閲覧しました

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

C# テキスト ファイルから行を効率的に削除する

C# でテキスト ファイルから特定の行を削除するのは一般的なタスクです。 ここでは、単純なアプローチとより効率的な LINQ ベースのソリューションの 2 つの方法を紹介します。

方法 1: 一時ファイルによる方法

このメソッドは一時ファイルを作成し、削除する行を除いて元のファイルの内容をコピーし、元のファイルを置き換えます。 これは、すべてをメモリにロードすると問題が発生する可能性がある非常に大きなファイルに適しています。

<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>
ログイン後にコピー

方法 2: LINQ 方法 (ファイルが小さいほど効率的)

ファイルが小さい場合、LINQ はより簡潔で高速になる可能性のあるソリューションを提供します。 保持する行をフィルタリングして、ファイルに書き込みます。 主な利点は遅延実行です。File.WriteAllLines が呼び出されるまでファイルは処理されません。

<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>
ログイン後にコピー

重要な考慮事項:

  • ファイル サイズ: 非常に大きなファイルの場合は、メモリの枯渇を避けるために、通常、一時ファイルのアプローチが推奨されます。 ファイルが小さい場合、多くの場合、LINQ メソッドの方が効率的です。
  • エンコーディング: この例では、UTF-8 エンコーディングを前提としています。 ファイルが別のエンコーディングを使用している場合は、それに応じて調整してください。
  • エラー処理: 製品コードには、try-catch.FileNotFoundException のような潜在的な例外を管理するためのエラー処理 (
  • ブロックなど) を含める必要があります。

"file.txt""removeme" を実際のファイル パスと削除する行に置き換えることを忘れないでください。

以上がC# でテキスト ファイルから行を効率的に削除する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート