1

我的价值观来自组合框:

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

?

4

5 回答 5

6

听起来你只是想要string.Join

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

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

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

于 2013-10-06T17:18:14.493 回答
3
String.Join(",",list);​​​​​​​​​​​​​​​​​​​​​​​​​

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

使用 Linq:

list.Select(s => s + ",").Aggregate((s, q) => s + q).TrimEnd(',');
于 2013-10-06T17:18:35.253 回答
2

怎么样

var result = string.Join(",", item.Split(new string[] { "2|" }, StringSplitOptions.RemoveEmptyEntries));
于 2013-10-06T17:25:12.443 回答
1

直接使用Replace即可:

string input = "2|722|742|762|77";
var result = input.Replace("2|",",").Trim(',');
于 2013-10-06T17:18:27.533 回答
0

正如其他答案中所指出的,string.Join这里应该使用什么。但是,如果您坚持使用 LINQ:

var result = list
    .Skip(1)
    .Aggregate(
        list.FirstOrDefault() ?? string.Empty,
        (total, current) => total + "," + current);
于 2013-10-06T17:35:17.300 回答