我希望创建一个字符串,其中包含每行一个项目的内容列表,但以下代码不维护新行:
foreach (DateTime date in dates)
{
datelist += date.ToString("yyyy/MM/dd") + Environment.NewLine;
}
string mystring = String.Format(@"Hey there here is a list of dates
Dates:
{0}",
datelist);
输出:
嘿,这里有一个日期列表
日期:
2012/03/04 2012/03/05 2012/03/06
期望的输出:
嘿,这里有一个日期列表
日期:
2012/03/04
2012/03/05
2012/03/06
我尝试了一些变体,例如两个 Environment.NewLines、转义符如 \r\n、以 @ 开头的字符串等等,但我无法获得我想要的输出。
我最终能够通过将符号放入我想要换行符的字符串中来解决我的问题,然后使用 string.Replace 将符号更改为 Environment.NewLine:
foreach (DateTime date in dates)
{
datelist += date.ToString("yyyy/MM/dd") + "<br />";
}
string mystring = String.Format(@"Hey there here is a list of dates
Dates:
{0}",
datelist.Replace(Environment.NewLine, "<br />"));
就像我说的,这行得通,但我想知道为什么在将带有行的字符串插入另一个字符串时,良好的旧连接不起作用,以及我的问题的标准/通用解决方案是什么。