Есть ли способ удалить или заменить следующую строку в файле csv при использовании al oop? - PullRequest
0 голосов
/ 27 мая 2020

Мне интересно, могу ли я удалить или заменить строку в файле csv каждый раз, когда в файле есть слово «привет». Поэтому, когда я печатаю файл обратно на консоль, он показывает все, кроме строк, которые говорят «привет». То, что я сделал до сих пор, показано ниже: я l oop над каждой строкой в ​​файле проверяю, соответствует ли строка "привет", но не знаю, что делать дальше.

Любая помощь очень ценится.

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

}

}

1 Ответ

0 голосов
/ 27 мая 2020

Вы можете использовать linq только go над интересующими вас строками

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

Это циклически перебирает все строки, которые "не" равны "hello". Вы можете заменить Equals на Contains, если хотите удалить строку, которая может содержать hello

Если вы намереваетесь удалить ее из файла, вы можете использовать тот же оператор linq,

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