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 как предложил Роб.

Другие вопросы по тегам