6.4 Auf einem nicht-generischen Typ einen Iterator erzeugen

Problem

Sie möchten, dass die Elemente in Ihrem nicht-generischen Typ über eine foreach-Anweisung enumeriert werden können.

Lösung

Fügen Sie Ihrem nicht-generischen Typ einen Iterator hinzu, wie Sie es hier sehen:

public class NGShoppingList
{
    public NGShoppingList() {}

    private List<string> _items = new List<string>();

    public void AddItem(string item)
    {
        _items.Add(item);
    }

    public IEnumerator<string> GetEnumerator()
    {
        for (int index = 0; index < _items.Count; index++)
        {
            yield return (_items[index]);
        }
    }
}

Der folgende Code erzeugt ein neues NGShoppingList-Objekt und füllt es mit Strings. Dann verwendet er eine foreach-Schleife, um alle Strings zu enumerieren und anzuzeigen:

public static void ...

Get C# Kochbuch now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.