Esta es probablemente una pregunta de sintaxis simple, pero no puedo resolverlo.Implementando IEnumerable con una matriz
Normalmente, me gustaría hacer esto:
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();
}
}
Pero en lugar de una lista, quiero utilizar una matriz - como esto:
public class ArrayOrderBook : IEnumerable<PriceLevel>
{
private PriceLevel[] PriceLevels = new PriceLevel[500];
public IEnumerator<PriceLevel> GetEnumerator()
{
return PriceLevels.GetEnumerator();
}
IEnumerator IEnumerable.GetEnumerator()
{
return PriceLevels.GetEnumerator();
}
}
El IEnumerator IEnumerable.GetEnumerator()
parece compilarse bien - pero el public IEnumerator<PriceLevel>
dice que necesito algún tipo de yeso: ¿cuál es la mejor manera de hacerlo?
William
¿Por qué? ¿Por qué usar una matriz para esto? – Oded
'List' está respaldado por una matriz, por lo que no está obteniendo nada, excepto una complicación excesiva de su trabajo. – Tudor
@Tudor, dependiendo de qué otra lógica vaya en la clase, podría tener más sentido que 'PriceLevels' sea una matriz (por ejemplo, un tamaño fijo). No hay nada de malo en querer refactorizar eso. –