C# Запись элементов ComboBox на отдельных строках
Я думал, что это будет так же просто, как
StringBuilder buildStrings = new StringBuilder();
foreach (string day in weeklyPlan.Items)
{
buildStrings.Append(day);
buildStrings.Append("\n");
}
string pathing = @"C:\...";
System.IO.File.WriteAllText(pathing, buildStrings.ToString());
Он хорошо записывает в следующий файл, однако записывает их все в одну строку, поэтому вывод выглядит так
Я первый предмет я второй предмет я третий предмет
вместо того, что я собираюсь для чего
Я первая вещь
Я второй предмет
Я третий предмет
отредактировано для форматирования
3 ответа
Использование AppendLine
вместо:
StringBuilder buildStrings = new StringBuilder();
foreach (string day in weeklyPlan.Items)
buildStrings.AppendLine(day);
string pathing = @"C:\...";
System.IO.File.WriteAllText(pathing, buildStrings.ToString());
Как насчет использования File.WriteAllLines
?
File.WriteAllLines("filepath", weeklyPlan.Items);
Ты можешь использовать .AppendLine()
метод класса stringBuilder. вместо .Append()
Следовательно, цикл может выглядеть следующим образом:
foreach (string day in weeklyPlan.Items)
{
buildStrings.AppendLine(day);
}
И разница между этими двумя заключается в том, что
AppendLine() добавит свой аргумент, а затем Environment.Newline. Если вы не вызываете AppendLine(), вам нужно будет добавить новую строку вместе с добавленной строкой, как вы это сделали. но использовать
Environment.NewLine
вместо\n
как предложил Роб.