Gibt es in C # ein seltenes Sprachkonstrukt, auf das ich nicht gestoßen bin (wie die wenigen, die ich kürzlich gelernt habe, einige über Stapelüberlauf), um einen Wert zu erhalten, der die aktuelle Iteration einer foreach-Schleife darstellt?
Zum Beispiel mache ich derzeit je nach den Umständen so etwas:
int i = 0;
foreach (Object o in collection)
{
// ...
i++;
}
foreach
besteht darin, einen gemeinsamen Iterationsmechanismus für alle Sammlungen bereitzustellen, unabhängig davon, ob sie indexierbar sind ( List
) oder nicht ( Dictionary
).
Dictionary
nicht indexierbar ist, eine Iteration von Dictionary
nicht durchquert sie in einer bestimmten Reihenfolge (dh ein Enumerator ist indexierbar durch die Tatsache ergibt es Elemente sequentiell). In diesem Sinne könnten wir sagen, dass wir nicht nach dem Index innerhalb der Auflistung suchen, sondern nach dem Index des aktuellen Aufzählungselements innerhalb der Aufzählung (dh ob wir uns beim ersten oder fünften oder letzten Aufzählungselement befinden).