2011-09-20 14 views
31

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

+1

[IEnumerableからstringへ]重複している可能性があります(http://stackoverflow.com/questions/3414263/ienumerable-to-string) –

答えて

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

    } 
} 
6
collection.Aggregate("", (str, obj) => str + obj.ToString() + ","); 
23
string output = String.Join(",", yourEnumerable); 

String.Join Method (String, IEnumerable

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

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

なぜ.ToArray()? –

+0

私の間違い、私は答えを編集しました。 –

+1

String.Joinの最後にある.ToArray()が.NETのために必要です。<4 – UNeverNo

1

文字列に文字列の大規模な配列に参加するには、直接ワンショットで、+を使用一つずつを反復するためのStringBuilderを使用するか、String.Joinはありません。

+0

OT:3つのオペランドを連結する場合、コンパイラはこれらの操作を3つのパラメータを取るstring.Appendメソッドの1つの呼び出しに変えます。したがって、3つ以上のオペランドを使用すると、StringBuilderが便利になります。 –

関連する問題