IListからカンマ区切りのリストを作成する またはIEnumerable 質問する

IListからカンマ区切りのリストを作成する またはIEnumerable 質問する

IList<string>またはからコンマ区切りの文字列値のリストを作成する最もクリーンな方法は何ですかIEnumerable<string>?

String.Join(...)は 上で動作するので、や などの型が文字列配列に簡単に変換できないstring[]場合は扱いが面倒になることがあります。IList<string>IEnumerable<string>

ベストアンサー1

.NET 4以上

IList<string> strings = new List<string>{"1","2","testing"};
string joined = string.Join(",", strings);

詳細と.Net 4.0以前のソリューション

IEnumerable<string>LINQ (.NET 3.5) を使用すると、簡単文字列配列に変換できます。

IEnumerable<string> strings = ...;
string[] array = strings.ToArray();

必要であれば、同等のヘルパー メソッドを記述するのは簡単です。

public static T[] ToArray(IEnumerable<T> source)
{
    return new List<T>(source).ToArray();
}

次に、次のように呼び出します。

IEnumerable<string> strings = ...;
string[] array = Helpers.ToArray(strings);

その後、 を呼び出すことができますstring.Join。もちろん、ヘルパー メソッドを使用する必要はありません。

// C# 3 and .NET 3.5 way:
string joined = string.Join(",", strings.ToArray());
// C# 2 and .NET 2.0 way:
string joined = string.Join(",", new List<string>(strings).ToArray());

後者はちょっと長いですね :)

これはおそらく最も簡単な方法であり、パフォーマンスもかなり優れています。パフォーマンスが実際にどのようなものかという他の疑問もありますが、これには以下が含まれます(ただし、これらに限定されません)。これです

.NET 4.0では、より多くのオーバーロードが利用可能になりました。string.Joinなので、実際には次のように書くことができます。

string joined = string.Join(",", strings);

はるかに簡単です:)

おすすめ記事