使用循环时,有没有办法删除或替换 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,")) );
我想知道是否可以在 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,")) );