逗号未按预期从字符串中删除

时间:2016-05-06 11:29:28

标签: c#

我有一个MVC应用程序,我需要将信息存储到数据库中。我得到一个字符串值,例如如

string a = "a,b,c";

然后我通过删除逗号

来拆分字符串
string[] b = a.Split(',');

在我保存到数据库之前,我必须重新添加逗号,这就是我被困住的地方。我可以添加逗号,但是我也不想将其添加到字符串的末尾。如果我TrimEnd(',')它会删除每个逗号。请问有人告诉我哪里出错了。我将逗号添加为:

foreach(var items in b)
{
   Console.WriteLine(string.Format("{0},", items));
}

请注意我必须首先拆分逗号,因为在保存到DB之前需要进行一些验证

预期结果应该是例如

  

A,B,C

而不是我

  

A,B,C,

更新 - 以下是我在Bruno Garcia回答

之后在我的MVC应用中使用的代码
string[] checkBoxValues = Request.Form["location"].Split(',');
foreach(var items in checkBoxValues)
{
   if (!items.Contains("false"))
   {
       UsersDto.Location += string.Join(",", items);
   }
 }

4 个答案:

答案 0 :(得分:4)

尝试:

string.Join(",", b);

这将在数组的每个项目之间添加一个“,”

答案 1 :(得分:1)

您可以使用String.Join吗?

var result = String.join(",", b); // a,b,c

完整文件:https://msdn.microsoft.com/en-us/library/57a79xd0(v=vs.110).aspx

答案 2 :(得分:1)

它可以做到

string[] checkBoxValues = Request.Form["location"].Split(',');
string s = "";
foreach (var items in checkBoxValues)
{
    if (!items.Contains("false"))
      {
        s = s + string.Format("{0},", items);
      }

}
UsersDto.Location = s.TrimEnd(',');

答案 3 :(得分:1)

根据您发布的代码,我认为您需要

UsersDto.Location = string.Join(
    ",", 
    Request.Form["location"]
           .Split(',')
           .Where(item => !item.Contains("false")));

这将在逗号上分割Request.Form["location"]中的值。然后过滤掉包含“false”作为子字符串的项目,最后用逗号将它们连接在一起。

所以像“abc,def,blahfalseblah,xyz”这样的字符串会变成“abc,def,xyz”。