接口被声明为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。

谢谢!

接口被声明为IEnumerable,但不可用

IBrands是IEnumerable<IBrand>,但不是相反。因此,不能将IEnumerable<IBrand>作为IBrands返回。

根据Brands实际代表的内容,您可以创建另一个Brands实例。

return new Brands(_carsDic.Values);