将<string>列为逗号分隔的字符串,将最后一个值列为逗号</string>

时间:2013-10-15 08:03:44

标签: c# linq

我有一个包含x个项目的字符串列表。我想创建一个单独的字符串,这些项应以逗号分隔,如下所示:

string result = val1, val2, val3, ... valx

但我不想让最后一个值后跟逗号+空格

这是我尝试的,结果在字符串的末尾添加了一个逗号+空格。

  string result = string.Join(", ", myList.Select(x => x.ToString()));

结果如下:

string result = val1, val2, val3, ... valx,[space]

4 个答案:

答案 0 :(得分:5)

string result = string.Join(", ", myList.Select(x => x.ToString())).TrimEnd(',',' ');

注意:您的输入myList似乎是List of string,因此您不需要ToString(),只需这样做:

string result = string.Join(", ", myList).TrimEnd(',',' ');

答案 1 :(得分:1)

然后列表末尾有一个空白区域。你真的想从逗号分隔的lis中删除它吗?这意味着您的项目数量少于列表的项目数。

string result = string.Join(", ", myList.Where(x => !string.IsNullOrWhiteSpace(x)));

答案 2 :(得分:0)

string result = string.Join(", ", myList.Where(x=>x.Trim() != String.Empty).Select(x => x.ToString()));

答案 3 :(得分:0)

请检查您的myList是否有whitepsace

没有WhiteSpace

        List<string> myList = new List<string>{"1", "2", "3", "4", "5", "6"};
        string result = string.Join(", ", myList.ToArray());
        Console.WriteLine(result);

<强>输出: 1, 2, 3, 4, 5, 6

使用WhiteSpace

        List<string> myListSpace = new List<string> { "1", "2", "3", "4", "5", "6"," " };
        string resultSpace = string.Join(", ", myListSpace.ToArray());
        Console.WriteLine(resultSpace);

<强>输出: 1, 2, 3, 4, 5, 6,[space]

解决您的问题:

string result = string.Join(", ", myListSpace.Where(s => !string.IsNullOrWhiteSpace(s)).ToArray());