Collections und foreach
Collections und Iteratoren
Eine Collection enthält mehrere Objekte - wie ein gewöhnliches Array. Iteratoren lösen das Problem des Speicherns und Inkrementierens von Array Indizes beim Aufrufen von Objekten.
Syntax:
| foreach iterator in collection statements next | 
Beispiel:
| [foreach $class in $classes if not $class.IsInternal ] class [=$class.Name]; [ endif next] | 
Beispiel 2:
| [foreach $i in 1 To 3 Write "// Step " & $i & "\n" ‘ Do some work next] | 
Die erste Zeile:
$classes ist das globale Objekt von allen Typen. $classes ist eine Collection (Sammlung) von einzelnen Klassenobjekten.
Foreach iteriert durch alle Datenelemente in $classes und führt für die Anweisung den Code der auf die Anweisung folgt, bis zur nächsten Anweisung aus.
In jeder Iteration wird $class dem nächsten Klassenobjekt zugewiesen. Sie arbeiten einfach mit dem Klassenobjekt, anstelle classes[i]->class->Name(), zu verwenden, wie das in C++ der Fall wäre.
Alle Collection-Iteratoren haben die folgenden zusätzlichen Eigenschaften:
| Index | der aktuelle Index beginnend mit 0 | 
| IsFirst | true, wenn das aktuelle Objekt das erste der Collection ist (Index ist 0) | 
| IsLast | true, wenn das aktuelle Objekt das letzte einer Collection ist | 
| Current | das aktuelle Objekt (dies ist implizit, wenn es nicht definiert ist und kann weggelassen werden) | 
Beispiel:
| [foreach $enum in $facet.Enumeration if not $enum.IsFirst ], [ endif ]"[=$enum.Value]"[ next] |