Jest to prawdopodobnie proste pytanie składniowe, ale nie mogę tego zrozumieć.Implementacja IEnumerable with Array
Normalnie, chciałbym to zrobić:
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();
}
}
Ale zamiast listy, chcę używać tablicy - tak:
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()
wydaje się skompilować w porządku - ale publiczna IEnumerator<PriceLevel>
mówi, że potrzebuję pewnego rodzaju obsady - jaki jest najlepszy sposób na zrobienie tego?
William
Dlaczego? Po co używać tej tablicy? – Oded
'List' jest zapisywany przez samą tablicę, więc nic nie zyskujesz, z wyjątkiem nadmiernej komplikacji twojej pracy. – Tudor
@Dziecko w zależności od tego, jaką inną logikę znajdziemy w klasie, może to mieć więcej sensu, jeśli 'PriceLevels' będzie tablicą (na przykład o stałym rozmiarze). Nic złego w tym, że chcesz to zmienić. –