Sobes.tech
Junior — Middle

Quali metodi implementano l'interfaccia IEnumerable nel linguaggio di programmazione?

sobes.tech AI

Risposta dell'AI

Nel linguaggio C#, l'interfaccia IEnumerable è implementata da classi e strutture che forniscono il metodo GetEnumerator(), che restituisce un oggetto che implementa l'interfaccia IEnumerator. Questo permette di iterare sulla collezione usando un ciclo foreach.

Le principali modalità di implementazione di IEnumerable:

  1. Implementazione manuale:
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. Implementazione dell'interfaccia generica 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. Utilizzo di collezioni della libreria standard che già implementano IEnumerable (ad esempio, List<T>, Array).

Quindi, il punto chiave è fornire il metodo GetEnumerator(), che restituisce un enumeratore per attraversare gli elementi della collezione.