私は
List<Person> personlist;
どうすれば変換できますか
IEnumerable<IPerson> iPersonList
Person は IPerson インターフェイスを実装します
私は
List<Person> personlist;
どうすれば変換できますか
IEnumerable<IPerson> iPersonList
Person は IPerson インターフェイスを実装します
.NET 4.0 以降を使用している場合は、暗黙的なキャストを実行できます。
IEnumerable<IPerson> iPersonList = personlist;
//or explicit:
var iPersonList = (IEnumerable<IPerson>)personlist;
これは一般的な反変性 in を使用しIEnumerable<out T>
ます。つまり、 から何かを取得するだけなので、暗黙的にifIEnumerable
に変換できます。(それも使用します。)IEnumerable<T>
IEnumerable<U>
T : U
List<T> : IEnumerable<T>
それ以外の場合は、LINQ を使用して各アイテムをキャストする必要があります。
var iPersonList = personlist.Cast<IPerson>();
を使用できます。IEnumerable.Cast
var iPersonList = personlist.Cast<IPerson>();