La méthode collection.filter( ) retourne une nouvelle collection contenant tous les éléments de la collection d'origine pour lesquels le résultat de la méthode nomMéthode est vrai. Cette méthode retourne une "shallow copy" (copie superficielle), ce qui signifie que les objets ou les collections présents dans les deux collections partagent la même référence.
Si la collection d'origine est une collection partagée, la collection retournée est également une collection partagée.
Note : Cette méthode ne modifie pas la collection d'origine.
Dans nomMéthode, passez le nom de la méthode à utiliser pour évaluer les éléments de la collection, ainsi que son ou ses paramètre(s) dans param (optionnel). nomMéthode peut effectuer tout test, avec ou sans paramètres et doit retourner true dans $1.result pour chaque élément ayant satisfait aux conditions du test et donc, à inclure dans la nouvelle collection.
nomMéthode reçoit les paramètres suivants :
- dans $1.value : valeur de l'élément à filtrer
- dans $2 : param
- dans $N... : param2...paramN
nomMéthode doit fixer le(s) paramètre(s) suivant(s) :
- $1.result (booléen) : true si l'élément satisfait à la condition de filtrage et doit être conservé.
- $1.stop (booléen, optionnel) : true pour stopper le rétroappel de méthode. La valeur retournée est la dernière calculée.
Vous voulez obtenir la collection des éléments de type texte dont la longueur est inférieure à 6 :
Le code de la méthode LengthLessThan est le suivant :
Vous voulez filtrer les éléments de la collection en fonction de leur type :
Le code de TypeLookUp est :
C_OBJET($1)
C_ENTIER LONG($2)
Si(Type valeur($1.value)=$2)
$1.result:=Vrai
Fin de si