让我们说我想为用户创建一个应用程序来选择故障部门进行报告。用户可以从asp:ListBox
进入并选择多个故障部门,当用户点击发送时,电子邮件会被读取,
We are having trouble in the following departments: DepartmentA, DepartmentB.
我能够找到如何正确地将项目从循环中循环出来,但最后一项有一个 ,
最后一项的结尾。例如,不是如上所述阅读正确的方法,它看起来像这样:
We are having trouble in the following departments: DepartmentA, DepartmentB,.
这是我的代码:
string DeptID = string.Empty;
foreach (ListItem li in lstDSXDepartment.Items)
{
if (li.Selected == true)
{
DeptID += li.Value + ",";
}
}
Response.Write("We are having trouble with the following Departments: " + DeptID + ".");
如何修复字符串,以便逗号不会显示在选择列表的末尾?
答案 0 :(得分:3)
您可以使用string.join。这更容易。
var ids = lstDSXDepartment.Items
.Cast<ListItem>()
.Where(x=> x.Selected)
.Select(x=> x.Value);
string text = string.Join(",", ids);
如果您想使用原始方法,则应考虑使用StringBuilder而不是String,因为 String是不可变的。
StringBuilder将根据项目数量显着提高性能。
答案 1 :(得分:1)
只需使用修剪功能即可删除不需要的逗号。
DeptID = DeptID.TrimEnd(',');
在写完之前在循环之后使用。
注意:TrimEnd
函数返回一个由原始字符串修改的新副本,因此您必须将其存储回原始变量中。这是因为C#
中的字符串不可变。