web-dev-qa-db-ja.com

IEnumerable <string>を1つのコンマ区切り文字列に変換する方法は?

デバッグのために、IEnumerableの内容を、各文字列項目をコンマで区切った1行の文字列にすばやく取得したいとします。 foreachループを使用してヘルパーメソッドで実行できますが、それは楽しくも簡単でもありません。 Linqは使用できますか?他のいくつかの短めの方法?

45
Johann Gerell
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));

    }
}
90
한국인
string output = String.Join(",", yourEnumerable);

String.Joinメソッド(String、IEnumerable

各メンバー間に指定されたセパレーターを使用して、String型の構築されたIEnumerableコレクションのメンバーを連結します。

30
Davide Piras
collection.Aggregate("", (str, obj) => str + obj.ToString() + ",");
10
Jan
IEnumerable<string> foo = 
var result = string.Join( ",", foo );
4
Wiktor Zychla

文字列の大きな配列を文字列に結合するには、+を直接使用せず、StringBuilderを使用して1つずつ反復するか、String.Joinを一度に実行します。

1
unruledboy

(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();
0
BKSpurgeon