【问题标题】:Add comma between values by using Linq使用 Linq 在值之间添加逗号
【发布时间】:2013-10-06 17:17:16
【问题描述】:

我的值来自 ComboBox:

2|722|742|762|77

我删除不必要的字符如下:

foreach (var item in checkListBox)
{
    string[] list = item.Split(
        new string[] { "2|" },
        StringSplitOptions.RemoveEmptyEntries);
}

我的列表值结果:

"72"
"74"
"76"
"77"

我的问题是:

如何在 1 行(彼此相邻)中获取所有上述值,并用 逗号 分隔,如下所示:

72,74,76,77

?

【问题讨论】:

    标签: c# linq add comma


    【解决方案1】:

    听起来你只是想要string.Join

    string commaSeparated = string.Join(",", list);
    

    (请注意,这不是 LINQ 的一部分 - 它与连接多个序列的“连接”类型不同。它使用分隔符将多个字符串连接在一起。)

    虽然您可以根据当前接受的答案在单个语句中执行此操作,但我个人会考虑保留您现有的语句并将其作为单独的步骤。它使代码更易于阅读和调试。

    【讨论】:

      【解决方案2】:
      String.Join(",",list);​​​​​​​​​​​​​​​​​​​​​​​​​
      

      虽然:a) 这不是 Linq。 b) 正如另一个答案中提到的,在这种情况下使用Replace 会更简单。

      使用 Linq:

      list.Select(s => s + ",").Aggregate((s, q) => s + q).TrimEnd(',');
      

      【讨论】:

        【解决方案3】:

        怎么样

        var result = string.Join(",", item.Split(new string[] { "2|" }, StringSplitOptions.RemoveEmptyEntries));
        

        【讨论】:

          【解决方案4】:

          直接使用Replace即可:

          string input = "2|722|742|762|77";
          var result = input.Replace("2|",",").Trim(',');
          

          【讨论】:

            【解决方案5】:

            如其他答案中所述,string.Join 是此处应使用的内容。但是,如果您坚持使用 LINQ:

            var result = list
                .Skip(1)
                .Aggregate(
                    list.FirstOrDefault() ?? string.Empty,
                    (total, current) => total + "," + current);
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2016-07-05
              • 1970-01-01
              • 2021-10-20
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多