如何在C#中创建多行字符串?
我知道以下几种方法:
使用StringBuilder
var result = new StringBuilder().AppendLine("one").AppenLine("two").ToString()
看起来太啰嗦了。
使用 @ 符号
var result = @"one
two"
看起来很丑并且格式混乱。
如何在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);
(嗯,“挑剔”并不是正确的词:在处理文本文件时,特定于操作系统的行尾往往是需要甚至必要的,例如在处理旧版软件时。)
“最好”的定义是非常开放的。
您是否想要:
所有这些因素都会对“最佳”做法产生重大影响。
var s = new StringBuilder();
s.Append("one");
s.Append("two");
s.ToString();
但是,由于我们不知道您需要它做什么。因此,很难给出更好的提示。
嗯,这样怎么样:
string s =
"abc\n" +
"def\n" ;
string s = File.OpenText("myfile.txt").ReadToEnd();
延续codymanix所说的话,你可以将长的多行字符串放在资源文件中。对于某些部署方案来说,这可能更容易,因为文本“文件”将包含在您的DLL / EXE中。
private string newLines(int multiplier)
{
StringBuilder newlines = new StringBuilder();
for (int i = 0; i < multiplier; i++)
newlines.Append(Environment.NewLine);
return newlines.ToString();
}