Як додати новий рядок (\ n \ r) до символу StringBuilder
?
Як додати новий рядок (\ n \ r) до символу StringBuilder
?
Відповіді:
Я скористався властивістю Environment.NewLine .
Щось на зразок:
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();
Якщо ви хочете мати новий рядок після кожного додавання, ви можете переглянути відповідь Бена Войгта .
AppendLine
на StreamWriter, тоді він вставить послідовність нових рядків, що підходить саме для цього, StreamWriter
а не просто Environment.NewLine
. Наприклад, якщо ви відкриєте потік, прив'язаний до з'єднання SMTP, ви можете встановити для його NewLine
властивості значення "\ r \ n", і тоді ви отримаєте дійсне рукостискання SMTP навіть на Unix.
За допомогою методу AppendLine .
َََ
Крім того, за допомогою методу StringBuilder.AppendLine .
\n
Натомість він додасться в Linux \r\n
.
StringBuilder sb = new StringBuilder();
Ви можете використовувати sb.AppendLine () або sb.Append (Environment.NewLine) ;
Для кількох рядків найкращий спосіб, який я знаходжу, це зробити:
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);
Таким чином, вам не доведеться захаращувати екран середовищем. NewLine або AppendLine () повторюється кілька разів. Це також буде менше схильне до помилок, ніж те, що потрібно пам’ятати про їх введення.
Просто створіть розширення для класу 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