これはおそらく単純な構文の質問ですが、私にはわかりません。
通常、私はこれを行います:
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>
何らかのキャストが必要であると一般に言われています。これを行う最善の方法は何ですか?
ウィリアム