[英]Best syntax to create multi-line string
在C#中創建多行字符串的最佳方法是什么?
我知道以下方法:
var result = new StringBuilder().AppendLine("one").AppenLine("two").ToString()
看起來太冗長。
var result = @"one
two"
看起來很丑,格式不好。
那這個呢:
var result = string.Join(Environment.NewLine, new string[]{
"one",
"two"
});
這有點痛苦,而且可能有點過頭,但是它可以保留代碼中的行分隔。
要稍微改善一點,可以使用輔助方法:
static string MultiLine(params string[] args) {
return string.Join(Environment.NewLine, args);
}
static void Main(string[] args) {
var result = MultiLine(
"one",
"two"
);
}
那這個呢?
var result = "one\ntwo";
如果您對特定於操作系統的行尾感到困惑,請使用Format
:
var result = String.Format("one{0}two", Environment.NewLine);
(好吧,“ fussy”不是正確的詞:在處理文本文件時,在處理舊版軟件時,通常需要甚至什至有必要使用特定於操作系統的行尾。)
“最佳”是一個非常開放的終點。
你在追尋:
所有這些對於做某事的“最佳”方式都有很大的不同。
我會說這取決於您的需求...
但是為了簡化它,我可以使用:
var s = new StringBuilder();
s.Append("one");
s.Append("two");
s.ToString();
但是由於我們不知道您需要什么。 很難給出更好的提示
您不應在源代碼中定義大字符串。 您應該在一個外部文本文件中定義它:
string s = File.OpenText("myfile.txt").ReadToEnd();
擺脫@codymanix所說的 ,您可以將長的多行字符串放在資源文件中。 對於某些部署方案,這可能會更容易,因為文本“文件”將包含在DLL / EXE中。
嗯,怎么樣:
string s =
"abc\n" +
"def\n" ;
有時您需要多個線路。 我使用Environment.NewLine,但我將其放置在一個方法中以使其倍增。 :)
private string newLines(int multiplier)
{
StringBuilder newlines = new StringBuilder();
for (int i = 0; i < multiplier; i++)
newlines.Append(Environment.NewLine);
return newlines.ToString();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.