IEnumerable のキャスト リストへ 質問する

IEnumerable のキャスト リストへ 質問する

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);
}

おすすめ記事