Sobes.tech
Junior — Middle

Ποιοι τρόποι υλοποιούν το interface IEnumerable στη γλώσσα προγραμματισμού;

sobes.tech AI

Απάντηση από AI

Στη γλώσσα προγραμματισμού C#, η διεπαφή IEnumerable υλοποιείται από κλάσεις και δομές που παρέχουν τη μέθοδο GetEnumerator(), η οποία επιστρέφει ένα αντικείμενο που υλοποιεί τη διεπαφή IEnumerator. Αυτό επιτρέπει την επανάληψη στη συλλογή με τη χρήση του βρόχου foreach.

Οι κύριοι τρόποι υλοποίησης του IEnumerable:

  1. Χειροκίνητη υλοποίηση:
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. Υλοποίηση της γενικής διεπαφής 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. Χρήση συλλογών από τη βιβλιοθήκη standard που ήδη υλοποιούν το IEnumerable (π.χ., List<T>, Array).

Ο βασικός σημειωτής είναι η παροχή της μεθόδου GetEnumerator(), η οποία επιστρέφει έναν enumerator για την περιήγηση στα στοιχεία της συλλογής.