これは簡単な構文質問ですが、わかりません。配列で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>
は、私は何らかのキャストが必要だと言います - これを行う最善の方法は何ですか?
ウィリアム
なぜですか?なぜこのための配列を使用するのですか? – Oded
'List'は配列自体でバックアップされているので、あなたの仕事が過度に複雑になることを除いて、何も得られません。 – Tudor
@ Tudorクラス内で他のロジックがどのようになっているかによって、PriceLevelsが配列(固定サイズなど)になると意味があります。それをリファクタリングしたいとは何も間違っていません。 –