使用 Linq 在值之间添加逗号
Posted
技术标签:
【中文标题】使用 Linq 在值之间添加逗号【英文标题】:Add comma between values by using 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
?
【问题讨论】:
【参考方案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);
【讨论】:
以上是关于使用 Linq 在值之间添加逗号的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 LINQ 查找包含 2 个逗号分隔的字符串的匹配项