我的价值来自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
答案 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);