IEnumerable
を にキャストできるかどうか疑問に思っていましたList
。各項目をリストにコピーする以外に、それを実行する方法はありますか?
ベストアンサー1
すでに示唆されているように、 を使用します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);
}