5

に変換する必要がありIEnumerableますList<string>。1つの方法は、これを繰り返して各オブジェクトをリストに追加することですが、このプロセスにはさまざまな時間がかかります。これを行う他の方法はありますか?どんな助けでもいただければ幸いです。

4

1 に答える 1

17

列挙可能なものを新しいインスタンスのコンストラクターに直接渡すことができます。List<string>

List<string> list = new List<string>(yourEnumerable);

AddRangeまたは、次の方法を使用できます。

List<string> list = new List<string>();
list.AddRange(yourEnumerable);

この回答は、実際にはすでに。を持っていることを前提としていますIEnumerable<string>
そうでない場合、唯一のオプションはループです。

List<string> list = new List<string>();
foreach(object item in yourEnumerable)
    list.Add(item.ToString());

ところで:あなたは言っています:

方法の1つは、これを繰り返して各オブジェクトをリストに追加することですが、このプロセスには時間がかかります。

いずれの場合も、列挙可能なものを繰り返す必要があります。他にどのようにしてすべての値を取得しますか?私が提供した最初の2つのサンプルコードでは、列挙はList<T>クラス内で実行されますが、それはまだ行われています。

于 2012-10-05T13:02:56.713 に答える