我尝试从包含特定单词的文本文件中删除一行。但是我需要一种更好的方法来删除该行。
以下是我使用的代码:
var oldLines = System.IO.File.ReadAllLines(filepath);
var newLines = oldLines.Where(line1 => !line1.Contains("Value"));
System.IO.File.WriteAllLines(filepath, newLines);
通过使用此任务已完成,但出现以下性能问题:如果文件包含10万行,则必须读取10行的行并写入10万行,因此需要更多时间。
答案 0 :(得分:1)
string line = null;
string line_to_delete = "sample line i want to delete";
using (StreamReader reader = new StreamReader("C:\\input")) {
using (StreamWriter writer = new StreamWriter("C:\\output")) {
while ((line = reader.ReadLine()) != null) {
if (String.Compare(line, line_to_delete) == 0)
continue;
writer.WriteLine(line);
}
}
}