web-dev-qa-db-fra.com

Caractère de nouvelle ligne dans le constructeur de chaînes

Comment ajoutez-vous un nouveau caractère de ligne (\ n\r) dans StringBuilder?

82
user274364

Je voudrais utiliser Environment.NewLine Property

Quelque chose comme

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

Ou

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

EDIT:

Si vous souhaitez avoir une nouvelle ligne après chaque ajout, vous pouvez regarder @ Ben Voigt répondre.

119
Adriaan Stander
72
Ben Voigt

aussi, en utilisant la méthode StringBuilder.AppendLine .

22
Fitzchak Yitzchaki

Il va annexer \n sous Linux à la place \r\n.

4
Kerry Jiang

Utiliser le constructeur de chaînes ajouter des fonctions intégrées à la ligne

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

sortie

première ligne deuxième ligne troisième ligne

3
Lijo
StringBuilder sb = new StringBuilder();

Vous pouvez utiliser sb.AppendLine () ou sb.Append (Environment.NewLine);

1
Janmejay Kumar

Pour plusieurs lignes, le meilleur moyen que je trouve est de procéder ainsi:

        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);

De cette façon, vous n'avez pas à encombrer l'écran avec Environment.NewLine ou AppendLine () répété plusieurs fois. Il sera également moins sujet aux erreurs que d'avoir à se souvenir de les taper.

1
user859400

Pourquoi ne pas simplement créer une extension pour la classe 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