如何将IEnumerable <string>转换为逗号分隔的字符串?</string>

时间:2011-09-20 08:07:18

标签: c# string linq collections ienumerable

假设出于调试目的,我想快速将IEnumerable的内容转换为单行字符串,每个字符串项以逗号分隔。我可以使用foreach循环在辅助方法中完成它,但这既不好玩也不简短。可以使用Linq吗?还有其他一些简短的方法吗?

6 个答案:

答案 0 :(得分:86)

using System;
using System.Collections.Generic;
using System.Linq;

class C
{
    public static void Main()
    {
        var a = new []{
            "First", "Second", "Third"
        };

        System.Console.Write(string.Join(",", a));

    }
}

答案 1 :(得分:29)

string output = String.Join(",", yourEnumerable);

String.Join Method (String, IEnumerable

  

连接构造的IEnumerable集合的成员   使用每个成员之间的指定分隔符键入String。

答案 2 :(得分:9)

collection.Aggregate("", (str, obj) => str + obj.ToString() + ",");

答案 3 :(得分:3)

IEnumerable<string> foo = 
var result = string.Join( ",", foo );

答案 4 :(得分:1)

将大型字符串数组连接到字符串,不要直接使用+,使用StringBuilder逐个迭代,或者一次性使用String.Join。

答案 5 :(得分:0)

(a)设置IEnumerable:

        // In this case we are using a list. You can also use an array etc..
        List<string> items = new List<string>() { "WA01", "WA02", "WA03", "WA04", "WA01" };

(b)将IEnumerable一起连接成一个字符串:

        // Now let us join them all together:
        string commaSeparatedString = String.Join(", ", items);

        // This is the expected result: "WA01, WA02, WA03, WA04, WA01"

(c)用于调试目的:

        Console.WriteLine(commaSeparatedString);
        Console.ReadLine();