stringbuilder中的换行符

时间:2010-04-11 16:34:16

标签: c# stringbuilder

如何在StringBuilder附加新行(\ n \ r)字符?

8 个答案:

答案 0 :(得分:116)

我会使用Environment.NewLine Property

这样的东西
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();

修改

如果您希望在每次追加后都有一个新行,您可以查看 @Ben Voigt 答案。

答案 1 :(得分:71)

答案 2 :(得分:22)

另外,使用StringBuilder.AppendLine方法。

答案 3 :(得分:4)

它会在\n中添加\r\n而不是{{1}}。

答案 4 :(得分:3)

使用字符串构建器追加内置函数

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

输出

FIRSTLINE 第二行 第三行

答案 5 :(得分:1)

对于多行,我找到的最佳方法是:

        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()来清除屏幕。它也不会像记住键入它们那样容易出错。

答案 6 :(得分:0)

为什么不只是为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

答案 7 :(得分:0)

StringBuilder sb = new StringBuilder();

您可以使用 sb.AppendLine() sb.Append(Environment.NewLine);