Bagaimana Anda menambahkan karakter baris (\ n \ r) baru StringBuilder
?
Bagaimana Anda menambahkan karakter baris (\ n \ r) baru StringBuilder
?
Jawaban:
Saya akan menggunakan properti Environment.NewLine .
Sesuatu seperti:
StringBuilder sb = new StringBuilder();
sb.AppendFormat("Foo{0}Bar", Environment.NewLine);
string s = sb.ToString();
Atau
StringBuilder sb = new StringBuilder();
sb.Append("Foo");
sb.Append("Foo2");
sb.Append(Environment.NewLine);
sb.Append("Bar");
string s = sb.ToString();
Jika Anda ingin memiliki baris baru setelah setiap penambahan, Anda dapat melihat jawaban Ben Voigt .
AppendLine
pada StreamWriter, maka itu akan memasukkan urutan baris baru yang sesuai untuk itu StreamWriter
dan bukan hanya Environment.NewLine
. Misalnya, jika Anda membuka aliran yang terkait dengan koneksi SMTP, Anda dapat menyetel NewLine
propertinya ke "\ r \ n" dan kemudian Anda akan mendapatkan jabat tangan SMTP yang valid bahkan di Unix.
Dengan metode AppendLine .
َََ
Juga, menggunakan metode StringBuilder.AppendLine .
Ini akan ditambahkan \n
di Linux sebagai gantinya \r\n
.
StringBuilder sb = new StringBuilder();
Anda dapat menggunakan sb.AppendLine () atau sb.Append (Environment.NewLine) ;
Untuk beberapa baris, cara terbaik yang saya temukan adalah melakukan ini:
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);
Dengan cara ini Anda tidak perlu mengacaukan layar dengan Environment.NewLine atau AppendLine () diulang beberapa kali. Ini juga akan lebih sedikit rawan kesalahan daripada harus mengingat untuk mengetiknya.
Buat saja ekstensi untuk kelas 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