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>
重要な考慮事項:
try-catch
.FileNotFoundException
のような潜在的な例外を管理するためのエラー処理 ("file.txt"
と "removeme"
を実際のファイル パスと削除する行に置き換えることを忘れないでください。
以上がC# でテキスト ファイルから行を効率的に削除する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。