3

私は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 のキャストについて不平を言います。

ありがとう!

4

1 に答える 1

3

IBrands は ですが、その逆ではありIEnumerable<IBrand>ません。IEnumerable<IBrand>したがって、 IBrands として返すことはできません。

Brands が実際に表すものに応じて、Brands の別のインスタンスを作成できます。

return new Brands(_carsDic.Values);
于 2013-04-08T09:46:59.250 に答える