デバッグのために、IEnumerableの内容を、各文字列項目をコンマで区切った1行の文字列にすばやく取得したいとします。 foreachループを使用してヘルパーメソッドで実行できますが、それは楽しくも簡単でもありません。 Linqは使用できますか?他のいくつかの短めの方法?
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));
}
}
string output = String.Join(",", yourEnumerable);
String.Joinメソッド(String、IEnumerable
各メンバー間に指定されたセパレーターを使用して、String型の構築されたIEnumerableコレクションのメンバーを連結します。
collection.Aggregate("", (str, obj) => str + obj.ToString() + ",");
IEnumerable<string> foo =
var result = string.Join( ",", foo );
文字列の大きな配列を文字列に結合するには、+を直接使用せず、StringBuilderを使用して1つずつ反復するか、String.Joinを一度に実行します。
// 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" };
// Now let us join them all together:
string commaSeparatedString = String.Join(", ", items);
// This is the expected result: "WA01, WA02, WA03, WA04, WA01"
Console.WriteLine(commaSeparatedString);
Console.ReadLine();