如何在StringBuilder中添加空行?

B. *_*non -1 c# stringbuilder splistitem sharepoint-2010

这是一个众所周知的"问题":

sb.AppendLine();
Run Code Online (Sandbox Code Playgroud)

......不会添加一个空行,正如人们所预料(如讨论这里,例如).

但是,人们普遍认为这样可行:

sb.AppendLine(Environment.NewLine);
Run Code Online (Sandbox Code Playgroud)

......但它不适合我.我有这个代码:

for (int i = 0; i < listOfListItems.Count; i++)
{
    sb.AppendLine(Environment.NewLine);
    lc = listOfListItems[i];
    sb.AppendLine(String.Format(@"<p>Request date is {0}; Payee Name is {1}; Remit Address or Mail Stop is {2}; Last 4 of SSN or ITIN is {3}; 204 Submitted or on file is {4}; Requester Name is {5}; Dept or Div Name is {6}; Phone is {7}; Email is {8}</p>",
        lc.li_requestDate, lc.li_payeeName, lc.li_remitAddressOrMailStop, lc.li_last4SSNDigitsOrITIN, lc.li_204SubmittedOrOnFile, lc.li_requesterName, lc.li_deptDivName, lc.li_phone, lc.li_email));
}
Run Code Online (Sandbox Code Playgroud)

所有数据都被添加到StringBuilder,然后添加到生成的表单中,但列表项之间没有空格 - "sb.AppendLine(Environment.NewLine)"没有任何附加内容.

我该怎么做才能强制单个列表项输出之间的界限?

Pra*_*ose 5

StringBuilder.AppendLine确实将\ r \n添加到字符串的末尾.您不需要显式添加另一个语句,如StringBuilder.AppendLine(System.Environment.NewLine).您可以通过将从StringBuilder返回的字符串转换为字符数组来交叉检查,您可以在其中查看换行符.

在您的示例中,您似乎试图以HTML格式显示输出(查看字符串中的p标记),并且HTML中不显示换行符.为了实现这一点,您可能需要在字符串中添加br.

sb.AppendLine("<br/>");
Run Code Online (Sandbox Code Playgroud)

回车符(\ r \n)在HTML标记中没有意义.