にキャストすることは可能かと思いIEnumerable
ましたList
。各アイテムをリストにコピーする以外にそれを行う方法はありますか?
84939 次
6 に答える
61
すでに提案されているように、 を使用しますyourEnumerable.ToList()
。あなたの を列挙しIEnumerable
、内容を新しい に保存しますList
。IEnumerable
要素を遅延生成している可能性があるため、必ずしも既存のリストをコピーしているわけではありません。
これはまさに他の回答が示唆していることですが、より明確です。ここに分解がありますので、確認してください。
public static List<TSource> ToList<TSource>(this IEnumerable<TSource> source)
{
if (source == null)
{
throw Error.ArgumentNull("source");
}
return new List<TSource>(source);
}
于 2009-06-07T07:27:38.540 に答える
43
using System.Linq;
.ToList()メソッドを使用します。System.Linq名前空間にあります。
var yourList = yourEnumerable.ToList();
https://docs.microsoft.com/en-us/dotnet/api/system.linq?view=netcore-2.2
于 2009-06-07T07:10:38.590 に答える
2
新しいリストを作成し、古いIEnumerableをその初期化子に渡します。
IEnumerable<int> enumerable = GetIEnumerable<T>();
List<int> list = new List<int>(enumerable);
于 2009-06-07T07:13:02.407 に答える
0
いいえ、コピーする必要があります。参照がリストへの参照であることが確実な場合は、次のように変換できます
List<int> intsList = enumIntList as List<int>;
于 2009-06-07T07:12:06.370 に答える