6.3 Auf einem generischen Typ einen Iterator implementieren
Problem
Sie möchten, dass die Elemente, die in Ihrem generischen Typ enthalten sind, über die foreach
-Anweisung durchlaufen werden können.
Lösung
Fügen Sie Ihrem generischen Typ einen Iterator hinzu, wie Sie es hier sehen:
public class ShoppingList<T> { public ShoppingList( ) {} private List<T> _items = new List<T>( ); public void AddItem(T item) { _items.Add(item); } // Iterator public IEnumerator<T> GetEnumerator( ) { for (int index = 0; index < _items.Count; index++) { yield return (_items[index]); } } }
Der folgende Code erzeugt ein neues ShoppingList<T>
-Objekt und füllt es mit Strings. Dann verwendet er eine foreach
-Schleife, um alle Strings zu enumerieren und anzuzeigen:
public static ...
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.