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

Joh*_*ell 50 c# linq string collections ienumerable

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

한국인*_*한국인 96

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));

    }
}
Run Code Online (Sandbox Code Playgroud)


Dav*_*ras 31

string output = String.Join(",", yourEnumerable);
Run Code Online (Sandbox Code Playgroud)

String.Join方法(String,IEnumerable

使用每个成员之间的指定分隔符连接构造的String类型的IEnumerable集合的成员.


Jan*_*Jan 10

collection.Aggregate("", (str, obj) => str + obj.ToString() + ",");
Run Code Online (Sandbox Code Playgroud)

  • 这样做,您将不需要在末尾`collect.Aggregate((str,obj)=&gt; str +“,” + obj.ToString());修剪。 (2认同)
  • 请注意,这是一个潜在的性能问题。Enumerable.Aggregate方法使用加号连接字符串。它比String.Join方法要慢得多。 (2认同)

BKS*_*eon 7

(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" };
Run Code Online (Sandbox Code Playgroud)

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

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

// This is the expected result: "WA01, WA02, WA03, WA04, WA01"
Run Code Online (Sandbox Code Playgroud)

(c) 出于调试目的:

Console.WriteLine(commaSeparatedString);
Console.ReadLine();
Run Code Online (Sandbox Code Playgroud)