Dies ist wahrscheinlich eine einfache Syntax Frage, aber ich kann es nicht herausfinden.IEnumerable mit einem Array implementieren
Normalerweise würde ich dies tun:
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();
}
}
Aber statt einer Liste, ich möchte ein Array verwenden - wie folgt aus:
public class ArrayOrderBook : IEnumerable<PriceLevel>
{
private PriceLevel[] PriceLevels = new PriceLevel[500];
public IEnumerator<PriceLevel> GetEnumerator()
{
return PriceLevels.GetEnumerator();
}
IEnumerator IEnumerable.GetEnumerator()
{
return PriceLevels.GetEnumerator();
}
}
Die IEnumerator IEnumerable.GetEnumerator()
fein zu kompilieren scheint - aber die Öffentlichkeit IEnumerator<PriceLevel>
sagt, dass ich eine Art Besetzung brauche - was ist der beste Weg, dies zu tun?
William
Warum? Warum ein Array dafür verwenden? – Oded
'List' wird von einem Array selbst gesichert, so dass Sie nichts gewinnen, außer einer Überkomprimierung Ihrer Arbeit. – Tudor
@Tudor Je nachdem, welche andere Logik in der Klasse verwendet wird, kann es sinnvoller sein, dass 'PriceLevels' ein Array ist (z. B. eine feste Größe). Nichts falsch daran, das umgestalten zu wollen. –