C# Не получается записать изменённые строки в файл
Всем привет! Подскажите, почему не получается записать изменённые строки в файл?
string outputFilename = "output.csv";
string[] NewFile = File.ReadAllLines("input.csv");
foreach (string str in NewFile)
{
var re = new Regex(@"&.\w*;");
string str1 = re.Replace(str, "");
Console.WriteLine(str1);
}
File.WriteAllLines(outputFilename, NewFile, Encoding.UTF8);
Console.ReadKey(true);
Понял, что записываю не изменения в файл, а прочитанный input в файл. Попробовал поменять:
File.WriteAllLines(outputFilename, str1, Encoding.UTF8);
Но говорит, что str1 не существует в текущем контексте
Ответы (1 шт):
Автор решения: arby
→ Ссылка
Проблема в том, что вы не перезаписываете ничего в массиве NewFile.
- Используйте цикл
for, с его помощью можно не только читать данные из массива, но и изменять их. - Вместо создания новой переменной
strзаписывайте изменение в ваш массивNewFile - Перепишите название вашего массив
NewFileвlowerCamelCase, т.к. это локальная переменная, а лучше переименуйте её. Например:inputCsvData
for (int i = 0; i < inputCsvData.Length; i++)
{
var re = new Regex(@"&.\w*;");
inputCsvData[i] = re.Replace(inputCsvData[i], "");
Console.WriteLine(inputCsvData[i]);
}