C# 多行字符串中的新行
试图重写我的一个类中的tostringC# 多行字符串中的新行,c#,string,multiline,C#,String,Multiline,试图重写我的一个类中的tostring return string.Format(@" name = {0} ID = {1} sec nr = {2} acc nr = {3}", string, int, int ,int); // types 但问题是,打印出来的结果并不一致: name = test
return string.Format(@" name = {0}
ID = {1}
sec nr = {2}
acc nr = {3}", string, int, int ,int); // types
但问题是,打印出来的结果并不一致:
name = test
ID = 42
sec nr = 11
acc nr = 55
尝试添加\n只是打印出来而不格式化。我猜它与@“”有关,我用它来制作多层衬里
希望将其打印出来:
name = test
ID = 42
sec nr = 11
acc nr = 55
如果在前面添加空格,它将以这种方式打印 我通常是这样做的
return string.Format(
@" name = {0}
ID = {1}
sec nr = {2}
acc nr = {3}", string, int, int ,int); // types
更新:也许是一个更漂亮的选择:
string[] lines =
{
" name = {0}",
" ID = {1}",
" sec nr = {2}",
" acc nr = {3}"
};
return string.Format(
string.Join(Environment.Newline, lines),
arg0, arg1, arg2, arg3);
@在字符串关闭标准C#字符串格式之前,请重试
return string.Format(" name = {0}\n ID = {1} \n sec nr = {2} \n acc nr = {3}",
string, int, int ,int); // types
不能使用@和\n,\t等
编辑
这是我所能得到的最好的
return string.Format("name = {0}\n" +
"ID = {1}\n" +
"sec nr = {2}\n" +
"acc nr = {3}",
string, int, int ,int);
不,这是您在其中的所有空间。来自msdn的解决方案:
// Sample for the Environment.NewLine property
using System;
class Sample
{
public static void Main()
{
Console.WriteLine();
Console.WriteLine("NewLine: {0} first line{0} second line{0} third line",
Environment.NewLine);
}
}
/*
This example produces the following results:
NewLine:
first line
second line
third line
*/
其中,值是有效的字符串集合,因此它是一个解决方案,但如果没有缩进,代码看起来很难看。你能做得更好吗?@Zka:不太好,这是你能得到的最漂亮的东西:(感谢您提供的替代方案,它看起来更好,而且对我来说非常易于管理。另一种替代方案是将常量从代码中重构到资源文件中。这还有一个额外的好处,即可以轻松地进行多个翻译。实际上,这是可行的,但我确实需要多行,因为需要添加更多信息让它排得很长。@leppie:对不起,为什么Windows不友好?\n不是Windows上的标准换行符。我知道有些控件在你得到它们之前无法工作\n\r。@leppie:谢谢,我主要是服务器端的,所以没有注意到。+1无效。这个答案有什么问题吗?我承认这不仅仅是一个原因,而不是一个解决方案。是的,我应该这样做我在这个答案上花了更多的精力。我犯了错。有趣的是,我从来没有想到过
String.Join(Environment.NewLine, value.Select(i => i)