在 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中文网其他相关文章!