ユーザーが希望するタイプのリストを返すメソッドを作成しようとしています。これを行うために、私はジェネリックを使用していますが、これはあまりよく知らないので、この質問は明白かもしれません。問題は、このコードが機能せず、エラーメッセージがスローされることです。Cannot convert type Systems.Collections.Generic.List<CatalogueLibrary.Categories.Brand> to Systems.Collection.Generic.List<T>
private List<T> ConvertToList<T>(Category cat)
{
switch (cat)
{
case Category.Brands:
return (List<T>)collection.Brands.ToList<Brand>();
}
...
}
しかし、IList
代わりに使用すると、エラーは発生しません。
private IList<T> ConvertToList<T>(Category cat)
{
switch (cat)
{
case Category.Brands:
return (IList<T>)collection.Brands.ToList<Brand>();
}
...
}
この場合、IListを使用できるのにListを使用できないのはなぜですか?collection.Brandsはサードパーティのライブラリから型を返すBrandCollection
ので、それがどのように作成されるのかわかりません。それBrandCollection
はIListから派生している可能性があり(推測しているだけです)、通常のリストには変換できませんが、IListに変換できますか?