Come si aggiunge un nuovo carattere di riga (\ n \ r) StringBuilder
?
Come si aggiunge un nuovo carattere di riga (\ n \ r) StringBuilder
?
Risposte:
Vorrei utilizzare il file proprietà Environment.NewLine .
Qualcosa di simile a:
StringBuilder sb = new StringBuilder();
sb.AppendFormat("Foo{0}Bar", Environment.NewLine);
string s = sb.ToString();
O
StringBuilder sb = new StringBuilder();
sb.Append("Foo");
sb.Append("Foo2");
sb.Append(Environment.NewLine);
sb.Append("Bar");
string s = sb.ToString();
Se desideri avere una nuova riga dopo ogni aggiunta, puoi dare un'occhiata alla risposta di Ben Voigt .
AppendLine
su uno StreamWriter, quindi inserirà la sequenza di nuova riga appropriata per quel particolare StreamWriter
e non semplicemente Environment.NewLine
. Ad esempio, se apri un flusso legato a una connessione SMTP, puoi impostare la sua NewLine
proprietà su "\ r \ n" e quindi otterrai un handshake SMTP valido anche su Unix.
Con il metodo AppendLine .
َََ
Inoltre, utilizzando il metodo StringBuilder.AppendLine .
Sarà invece aggiunto \n
in Linux \r\n
.
StringBuilder sb = new StringBuilder();
Puoi usare sb.AppendLine () o sb.Append (Environment.NewLine) ;
Per più righe il modo migliore che trovo è farlo:
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);
In questo modo non devi ingombrare lo schermo con Environment.NewLine o AppendLine () ripetuti più volte. Sarà anche meno soggetto a errori rispetto al dover ricordare di digitarli.
Basta creare un'estensione per 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