我有一个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。
谢谢!
答案 0 :(得分:3)
IBrands是IEnumerable<IBrand>
,但不是相反。因此,您无法返回IEnumerable<IBrand>
作为IBrands。
根据Brands实际代表的内容,您可以创建另一个品牌实例。
return new Brands(_carsDic.Values);