C#逗号分隔的字符串添加额外的结尾逗号
我将一个值的字符串从表单传递到MVC5控制器,并使用C#将数据保存在数据库中的一个字段中。C#逗号分隔的字符串添加额外的结尾逗号
的string[]CarNotes
与在控制器中的ActionResult访问并且如下操作:
string selection = "";
if (CarNotes != null && CarNotes.Length > 0)
{
foreach (string s in CarNotes)
{
selection += s + ", ";
}
}
我然后保存的选择的内容的分配的数据库字段。这工作正常。唯一的问题是它在列表的末尾添加了一个额外的','。我怎样才能防止这个额外的','。由于
,你也可以尝试使用的string.join ...
var selection = String.Join(", ", CarNodes);
更多的信息在这里... https://msdn.microsoft.com/en-us/library/57a79xd0(v=vs.110).aspx
始终使用StringBuilder,当你连接字符串:
StringBuilder selection = new StringBuilder();
if (CarNotes != null && CarNotes.Length > 0)
{
foreach (string s in CarNotes)
{
selection.Append(s);
selection.Append(", ");
}
}
//Trim the ending space, then trim the ending comma
return selection.ToString().TrimEnd().TrimEnd(',');
另外,您可以使用Substring
:
if (selection.EndsWith(", "))
{
selection = selection.Substring(0, selection.Length - 2);
}
或者Remove
:
if (selection.EndsWith(", "))
{
selection = selection.Remove(selection.Length - 2);
}
与隐含的'StringBuilder'用法与'String.Join'相比,显式的'StringBuilder'用法和删除结尾分隔符有什么好处吗? –
你也可以使用AppendFormat($“{s},”)'方法 –
除了的string.join,你也可以使用聚合(LINQ,又名减少函数式编程)
var selection = CarNotes.Aggregate((i, j) => i + ", " + j);
使用[的string.join](https://msdn.microsoft.com/en-us/library/57a79xd0(v = vs.110)的.aspx)方法 - '字符串值=的string.join (“,”,CarNotes);' –
'选择+ =(选择==“”? “”:“,”)+ s;'应该这样做,尽管'String.Join'是一个更好的主意。 – HABO