接口被声明为IEnumerable,但不可用
本文关键字:IEnumerable 声明 接口 | 更新日期: 2023-09-27 18:07:55
我有一个IEnumerable接口:
public interface IBrands: IEnumerable<Ibrand>
及其启示:
public class Brands: IBrands
{
public Brands()
{
_brandsDic= new Dictionary<int, IBrand>();
}
}
当我使用Linq在另一个类中检索一些数据时,我不得不返回一些IEnumerable:
public IEnumerable<IBrand> GetCarsBrands()
{
return _carsDic.SelectMany(r => r.Value.Brands).ToList();
}
而是希望直接返回IBrands。你知道怎么做吗?它抱怨如果我尝试在IEnumerable中铸造IBrands。
谢谢!
IBrands是IEnumerable<IBrand>
,但不是相反。因此,不能将IEnumerable<IBrand>
作为IBrands返回。
根据Brands实际代表的内容,您可以创建另一个Brands实例。
return new Brands(_carsDic.Values);