Collections and foreach
Collections and iterators
A collection contains multiple objects - like a ordinary array. Iterators solve the problem of storing and incrementing array indexes when accessing objects.
Syntax:
foreach iterator in collection statements next |
Example:
[foreach \$class in \$classes if not \$class.IsInternal ] class [=\$class.Name]; [ endif next] |
Example 2:
[foreach \$i in 1 To 3 Write "// Step " & \$i & "\" ‘ Do some work next] |
In the first line:
\$classes is the global object of all generated types. It is a collection of single class objects.
Foreach steps through all the items in \$classes, and executes the code following the instruction, up to the next statement, for each of them.
In each iteration, \$class is assigned to the next class object. You simply work with the class object instead of using, classes[i]->Name(), as you would in C++.
All collection iterators have the following additional properties:
Index | The current index, starting with 0 |
IsFirst | true if the current object is the first of the collection (index is 0) |
IsLast | true if the current object is the last of the collection |
Current | The current object (this is implicit if not specified and can be left out) |
Example:
[foreach \$enum in \$facet.Enumeration if not \$enum.IsFirst ], [ endif ]"[=\$enum.Value]"[ next] |