使用Linq在值之间添加逗号

时间:2013-10-06 17:17:16

标签: c# linq add comma

我的价值来自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

5 个答案:

答案 0 :(得分:6)

听起来你只想要string.Join

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

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

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

答案 1 :(得分:3)

String.Join(",",list);​​​​​​​​​​​​​​​​​​​​​​​​​

虽然:a)这不是Linq。 b)正如这里的另一个答案所述 - 在这种情况下使用Replace会更简单。

使用Linq:

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

答案 2 :(得分:2)

怎么样

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

答案 3 :(得分:1)

直接使用Replace

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

答案 4 :(得分:0)

如其他答案中所述,string.Join应该在这里使用。但是,如果你坚持使用LINQ:

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