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]  |