Реализация IEnumerable с массивом

Вероятно, это простой синтаксический вопрос, но я не могу понять.

Обычно я бы сделал так:

public class OrderBook : IEnumerable<PriceLevel>
{
    private readonly List<PriceLevel> PriceLevels = new List<PriceLevel>();

    public IEnumerator<PriceLevel> GetEnumerator()
    {
        return PriceLevels.GetEnumerator();
    }

    IEnumerator IEnumerable.GetEnumerator()
    {
        return PriceLevels.GetEnumerator();
    }
}

Но вместо списка я хочу использовать массив -вот так:

public class ArrayOrderBook : IEnumerable<PriceLevel>
{
    private PriceLevel[] PriceLevels = new PriceLevel[500];

    public IEnumerator<PriceLevel> GetEnumerator()
    {
        return PriceLevels.GetEnumerator();
    }

    IEnumerator IEnumerable.GetEnumerator()
    {
        return PriceLevels.GetEnumerator();
    }
}

IEnumerator IEnumerable.GetEnumerator()кажется, что компилируется нормально -, но публика IEnumerator<PriceLevel>говорит, что мне нужно какое-то приведение -, как лучше всего это сделать?

Уильям

11
задан Nikhil Agrawal 4 July 2012 в 02:32
поделиться