web-dev-qa-db-ja.com

文字列ビルダーの改行文字

StringBuilderに改行(\ n\r)文字を追加するにはどうすればよいですか?

82
user274364

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の回答をご覧ください。

119
Adriaan Stander
72
Ben Voigt

また、 StringBuilder.AppendLine メソッドを使用します。

22

Linuxでは\nの代わりに\r\nが追加されます。

4
Kerry Jiang

String Builder Append Line組み込み関数を使用する

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

出力

1行目2行目3行目

3
Lijo
StringBuilder sb = new StringBuilder();

sb.AppendLine()またはsb.Append(Environment.NewLine);を使用できます。

1
Janmejay Kumar

複数行の場合、私が見つける最善の方法はこれを行うことです:

        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()を複数回繰り返して画面を乱雑にする必要はありません。また、入力するのを忘れないようにするよりもエラーが発生しにくくなります。

1
user859400

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
0
Paul Ishak