我正在尝试创建一个方法,该方法返回用户想要的任何类型的列表。为此,我使用了泛型,我不太熟悉,所以这个问题可能很明显。问题是此代码不起作用并抛出错误消息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?BrandCollection
collection.Brands从第三方库返回一个类型,所以我不知道它是如何创建的。可能是BrandCollection
从 IList 派生的(只是猜测它确实如此),因此可以将其转换为它,但不能转换为普通的 List?