Jak dołączyć znak nowej linii (\ n \ r) StringBuilder
?
Jak dołączyć znak nowej linii (\ n \ r) StringBuilder
?
Odpowiedzi:
Skorzystałbym z właściwości Environment.NewLine .
Coś jak:
StringBuilder sb = new StringBuilder();
sb.AppendFormat("Foo{0}Bar", Environment.NewLine);
string s = sb.ToString();
Lub
StringBuilder sb = new StringBuilder();
sb.Append("Foo");
sb.Append("Foo2");
sb.Append(Environment.NewLine);
sb.Append("Bar");
string s = sb.ToString();
Jeśli chcesz mieć nową linię po każdym dodaniu, możesz spojrzeć na odpowiedź Bena Voigta .
AppendLine
na StreamWriter, wtedy wstawi sekwencję nowej linii odpowiednią dla tego konkretnego, StreamWriter
a nie tylko Environment.NewLine
. Na przykład, jeśli otworzysz strumień powiązany z połączeniem SMTP, możesz ustawić jego NewLine
właściwość na „\ r \ n”, a wtedy otrzymasz poprawne uzgadnianie SMTP nawet w systemie Unix.
َََ
Ponadto przy użyciu metody StringBuilder.AppendLine .
\n
Zamiast tego zostanie dołączony do systemu Linux \r\n
.
StringBuilder sb = new StringBuilder();
Możesz użyć sb.AppendLine () lub sb.Append (Environment.NewLine) ;
W przypadku wielu wierszy najlepszym sposobem jest zrobienie tego:
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);
W ten sposób nie musisz zaśmiecać ekranu wielokrotnym powtarzaniem Environment.NewLine lub AppendLine (). Będzie też mniej podatny na błędy niż konieczność pamiętania o ich wpisaniu.
Po prostu utwórz rozszerzenie dla klasy 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