【问题标题】:C# comma separated string adds extra ending commaC# 逗号分隔字符串添加额外的结束逗号
【发布时间】:2017-09-13 16:10:12
【问题描述】:

我将一串值从表单传递到 MVC5 控制器,并使用 C# 将项目保存在数据库的一个字段中。

string[]CarNotes 通过控制器中的 actionresult 访问并进行如下操作:

string selection = "";
                if (CarNotes != null && CarNotes.Length > 0)
                {
                    foreach (string s in CarNotes)
                    {
                        selection += s + ", ";
                    }
                }

然后我将选择的内容保存在分配的数据库字段中。这工作正常。唯一的问题是它在列表末尾添加了一个额外的“,”。我怎样才能防止这个额外的','。谢谢

【问题讨论】:

  • 使用 String.Join 方法 - string value = String.Join(", ", CarNotes);
  • selection += ( selection == "" ? "" : ", " ) + s; 应该这样做,尽管String.Join 是一个更好的主意。

标签: c# asp.net-mvc string list arraylist


【解决方案1】:

在连接字符串时始终使用 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);
}

【讨论】:

  • String.Join 的隐式使用StringBuilder 相比,显式使用StringBuilder 和删除结尾分隔符有什么好处吗?
  • 你也可以使用AppendFormat($"{s}, ")方法
【解决方案2】:

您也可以尝试使用 string.join...

var selection = String.Join(", ", CarNodes);

更多信息在这里...https://msdn.microsoft.com/en-us/library/57a79xd0(v=vs.110).aspx

【讨论】:

  • @JeremyThompson 当我第一次回答它时,真的是怎么被扯掉了?大声笑
  • @JeremyThompson 你确定 Stephen Muecke 是这里唯一知道String.Join 的人吗?
  • 这个答案是我阅读问题标题时的确切想法,不会称之为敲诈。即使是这样,我怀疑 Steven 是否会关心,或者他会将其作为答案而不是评论发布。
【解决方案3】:

除了String.Join,你还可以使用聚合(linq,又名函数式编程中的reduce)

var selection = CarNotes.Aggregate((i, j) => i + ", " + j);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-07
    • 1970-01-01
    • 1970-01-01
    • 2020-07-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多