使用循环时,有没有办法删除或替换 csv 文件中的下一行?

Is there a way to delete or replace the next line in a csv file when using a loop?

我想知道是否可以在 csv 文件中每次包含单词 "hello" 时删除或替换一行。因此,当我将文件打印回控制台时,它会显示除 "hello" 行以外的所有内容。到目前为止我所做的如下,我遍历文件中的每一行检查该行是否等于 "hello" 但不知道下一步该做什么。

非常感谢任何帮助。

Var allLines = File.ReadLines(@"..\..\..\File.csv");

Foreach (var line in allLines)

{

if (line.Split(',')[0].Equals(string Hello))

{

// need to delete line where the line in csv file equals hello

}

}

您可以使用 linq 只检查您感兴趣的行

Foreach (var line in allLines.Where(x => !x.Split(',').First().Equals("hello")  ))
{
  // do what u need with anything not hello
}

这遍历所有 "not" 等于 "hello" 的行。如果要删除可能包含 hello

的行,可以将 Equals 替换为 Contains

如果你打算从文件中删除它,你可以使用同一种 linq 语句,

File.WriteAllLines(path, allLines.Where(x => !x.StartsWith("hello,"))  );