Estoy intentando escribir mi propia implementación (simple) de List. Esto es lo que he hecho hasta ahora:Problemas para implementar IEnumerable <T>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace provaIEnum
{
class MyList<T> : IEnumerable<T>
{
private T[] _array;
public int Count { get; private set; }
public MyList() { /* ... */ }
public void Add(T element) { /* ... */ }
// ...
public IEnumerator<T> GetEnumerator()
{
for (int i = 0; i < Count; i++)
yield return _array[i];
}
}
Recibo un error sobre GetEnumerator sin embargo:
'provaIEnum.Lista' no implementa miembro de interfaz 'System.Collections.IEnumerable.GetEnumerator() '. 'provaIEnum.Lista.GetEnumerator()' no puede implementar 'System.Collections.IEnumerable.GetEnumerator()' porque no tiene tiene el tipo de retorno coincidente de 'System.Collections.IEnumerator'.
No estoy seguro si entiendo lo que VS intenta decirme y no tengo ni idea de cómo solucionarlo.
Gracias por su tiempo
Tenga en cuenta que no debe escribir su enumerador de esa manera ya que actualmente puede modificar su matriz interna en un 'foreach' (llamando' Add' en foreach no causará una excepción). [Ver] (http://stackoverflow.com/questions/24142614/when-should-i-separately-implement-ienumeratort) – nawfal
@nawfal buen punto, los errores siempre nos están mirando;) – BlackBear