在 C# 中從文字檔案中刪除特定行是一項常見任務。 這裡有兩種方法:一種是直接的方法,另一種是更有效率的基於 LINQ 的解決方案。
方法一:臨時檔案法
此方法建立一個臨時文件,複製原始文件的內容排除要刪除的行,然後替換原始文件。 這適用於非常大的文件,將所有內容加載到記憶體中可能會導致問題。
<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中文網其他相關文章!