Символ новой строки в строителе строк - PullRequest
80 голосов
/ 11 апреля 2010

Как добавить символ новой строки (\ n \ r) в StringBuilder?

Ответы [ 8 ]

116 голосов
/ 11 апреля 2010

Я бы использовал Environment.NewLine Свойство

Что-то вроде

StringBuilder sb = new StringBuilder();
sb.AppendFormat("Foo{0}Bar", Environment.NewLine);
string s = sb.ToString();

Или

StringBuilder sb = new StringBuilder();
sb.Append("Foo");
sb.Append("Foo2");
sb.Append(Environment.NewLine);
sb.Append("Bar");
string s = sb.ToString();

EDIT:

Если вы хотите, чтобы после каждого добавления добавлялась новая строка, вы можете посмотреть ответ @ Ben Voigt .

72 голосов
/ 11 апреля 2010
22 голосов
/ 11 апреля 2010

также с использованием метода StringBuilder.AppendLine .

4 голосов
/ 05 января 2012

Будет добавлено \n в Linux вместо \r\n.

3 голосов
/ 26 июля 2016

Использование встроенных в String Builder встроенных функций

StringBuilder sb = new StringBuilder();
sb.AppendLine("first line ");
sb.AppendLine("Second  line ");
sb.AppendLine("third  line ");

выход

FIRSTLINE Вторая линия третья строка

1 голос
/ 01 мая 2015

Для нескольких строк лучший способ, который я найду, - это сделать:

        IEnumerable<string> lines = new List<string>
        {
            string.Format("{{ line with formatting... {0} }}", id),
            "line 2",
            "line 3"
        };
        StringBuilder sb = new StringBuilder();
        foreach(var line in lines)
            sb.AppendLine(line);

Таким образом, вам не нужно загромождать экран повторением Environment.NewLine или AppendLine () несколько раз. Это также будет менее подвержено ошибкам, чем необходимость запоминать их.

0 голосов
/ 11 марта 2019
StringBuilder sb = new StringBuilder();

Вы можете использовать sb.AppendLine () или sb.Append (Environment.NewLine) ;

0 голосов
/ 25 июля 2018

Почему бы просто не создать расширение для класса stringbuilder?

Public Module Extensions
    <Extension()>
    Public Sub AppendFormatWithNewLine(ByRef sb As System.Text.StringBuilder, ByVal format As String, ParamArray values() As Object)
        sb.AppendLine(String.Format(format, values))
    End Sub
End Module
...