Colecciones y foreach
Colecciones e iteradores
Una colección contiene varios objetos, como una matriz normal y corriente. Los iteradores sirven para almacenar e incrementar índices de matriz al acceder a objetos.
Sintaxis:
foreach iterator in colección instrucciones siguiente |
Ejemplo n°1:
[foreach $class in $classes if not $class.IsInternal ] class [=$class.Name]; [ endif next] |
Ejemplo n°2:
[foreach $i in 1 To 3 Write "// Step " & $i & "\n" ‘ Do some work next] |
La instrucción foreach recorre todos los elementos de $classes y en cada uno de ellos ejecuta el código que sigue a la instrucción hasta llegar a la instrucción next.
En cada iteración se asigna $class al siguiente objeto de clase. Simplemente se trabaja con el objeto de clase en lugar de usar classes[i]->Name() como en C++.
Los iteradores de colección tienen estas propiedades adicionales:
Index | El índice actual, empezando por 0 |
IsFirst | true si el objeto actual es el primer objeto de la colección (el índice es 0) |
IsLast | true si el objeto actual es el último objeto de la colección |
Ejemplo:
[foreach $enum in $facet.Enumeration if not $enum.IsFirst ], [ endif ]"[=$enum.Value]"[ next] |
Rutinas para la manipulación de colecciones
collection SortByName( bAscending ) |
devuelve una colección cuyos elementos están ordenados por nombre (con distinción de mayúsculas y minúsculas) en orden ascendente o descendente.
collection SortByNameNoCase( bAscending ) |
devuelve una colección cuyos elementos están ordenados por nombre (sin distinción de mayúsculas y minúsculas) en orden ascendente o descendente.
Ejemplo:
$SortedNestedClassifier = $Class.nestedClassifier.SortByNameNoCase( true ) |
collection SortByKind( bAscending ) |
devuelve una colección cuyos elementos están ordenados por tipo (p.ej. clase, interfaz...) en orden ascendente o descendente.
collection SortByKindAndName( bAscendingKind, bAscendingName ) |
devuelve una colección cuyos elementos están ordenados por tipo (p.ej. clase, interfaz...) en orden ascendente o descendente y si el tipo es idéntico al nombre (con distinción de mayúsculas y minúsculas en orden ascendente o descendente).
collection SortByKindAndNameNoCase( bAscending ) |
devuelve una colección cuyos elementos están ordenados por tipo (p.ej. clase, interfaz...) en orden ascendente o descendente y si el tipo es idéntico al nombre (con distinción de mayúsculas y minúsculas en orden ascendente o descendente).