Sobes.tech
Junior — Middle

Quais métodos implementam a interface IEnumerable na linguagem de programação?

sobes.tech IA

Resposta da IA

Na linguagem C#, a interface IEnumerable é implementada por classes e estruturas que fornecem o método GetEnumerator(), que devolve um objeto que implementa a interface IEnumerator. Isto permite percorrer a coleção usando um ciclo foreach.

As principais formas de implementar IEnumerable:

  1. Implementação manual:
public class MyCollection : IEnumerable
{
    private object[] items = {1, 2, 3};

    public IEnumerator GetEnumerator()
    {
        for (int i = 0; i < items.Length; i++)
            yield return items[i];
    }
}
  1. Implementação da interface genérica IEnumerable<T>:
public class MyCollection<T> : IEnumerable<T>
{
    private T[] items;

    public MyCollection(T[] items) { this.items = items; }

    public IEnumerator<T> GetEnumerator()
    {
        for (int i = 0; i < items.Length; i++)
            yield return items[i];
    }

    IEnumerator IEnumerable.GetEnumerator() => GetEnumerator();
}
  1. Uso de coleções da biblioteca padrão que já implementam IEnumerable (por exemplo, List<T>, Array).

Assim, o ponto-chave é fornecer o método GetEnumerator(), que devolve um enumerador para percorrer os elementos da coleção.