99 votes

Caractère Newline dans StringBuilder

Comment ajouter une nouvelle ligne( \n\r ) dans StringBuilder ?

17 votes

Ce n'est pas une nouvelle ligne sous n'importe quel système d'exploitation. Windows est \r\n Mac est \r Unix et Linux sont \n.

2 votes

Pédant, 'newline' est toujours '. \n '. C'était le caractère de décalage de platine dans les télétypes mécaniques. Le "retour chariot" est toujours ' \r '. C'était le caractère de retour chariot dans les télétypes. Chaque système d'exploitation peut les interpréter différemment. Dans Unix/Linux, le retour n'est généralement pas utilisé car il n'est pas nécessaire puisqu'il ne s'agit plus d'un système mécanique.

7 votes

@Jay : Un caractère ne provoquant qu'un décalage de platine n'est pas appelé newline, mais linefeed.

132voto

astander Points 83138

J'utiliserais le Propriété Environment.NewLine .

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

Si vous souhaitez avoir une nouvelle ligne après chaque appendice, vous pouvez jeter un coup d'oeil à La réponse de Ben Voigt .

2 votes

Il est possible de mélanger Append et AppendLine pour obtenir de nouvelles lignes là où vous le souhaitez, et non après chaque Append. Aussi, j'ai fait un lien vers la version sans argument de AppendLine qui n'ajoute rien d'autre que la séquence de nouvelles lignes.

0 votes

J'ai été piégé par append puis appendline. Je m'attendais à ce que appendline ajoute un \n puis ma chaîne de caractères, mais appendline ajoute la chaîne de caractères puis l'élément \n - msdn.microsoft.com/fr/us/library/

7 votes

Stringbuilder.AppendLine() fait la même chose que sb.Append(Environment.NewLine) ; C'est aussi plus propre je dirais( msdn.microsoft.com/fr/us/library/ebk18257.aspx )

81voto

Ben Voigt Points 151460

0 votes

Ce serait bien s'il avait le même nombre de surcharges que Append(). Cela ressemble à un oubli.

25voto

Fitzchak Yitzchaki Points 4896

De même, l'utilisation du StringBuilder.AppendLine méthode.

5voto

Kerry Jiang Points 935

Il ajoutera \n dans Linux à la place \r\n .

1voto

PapyRef Points 493

Aussi ce travail

sb.Append(string.Format("Foo{0}Bar", Environment.NewLine));

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X