4D v17.4

collection.orderByMethod( )

Accueil

 
4D v17.4
collection.orderByMethod( )

collection.orderByMethod( )  


 

La méthode collection.orderByMethod( ) retourne une nouvelle collection contenant tous les éléments de la collection d'origine triés selon les critères définis par nomMéthode. 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 qui compare deux valeurs et retourne true dans $1.result si la première valeur est inférieure à la seconde valeur. Si nécessaire, vous pouvez passer des paramètres supplémentaires à la méthode via extraParam.

  • nomMéthode reçoit les paramètres suivants :
    • $1 (objet), où :
      • $1.value (tout type) : valeur du premier élément à comparer
      • $1.value2 (tout type) : valeur du second élément à comparer
    • $2...$N (tout type) : paramètres supplémentaires (extraParam)
  • nomMéthode doit fixer le paramètre suivant :
    • $1.result (booléen) : vrai si $1.value < $1.value2, sinon faux

Vous souhaitez trier une collection de chaînes contenant des nombres par valeur plutôt que par ordre alphabétique :

 C_COLLECTION($c)
 $c:=Creer collection("333";"4";"1111";"22")
 $c2:=$c.orderBy() //$c2=["1111","22","333","4"], ordre alphabétique
 $c3:=$c.orderByMethod("NumAscending") // $c3=["4","22","333","1111"]

Voici le code de la méthode NumAscending:

 $1.result:=Num($1.value)<Num($1.value2)

Vous souhaitez trier une collection de chaînes selon leur longueur :

 C_COLLECTION($fruits)
 $fruits:=Creer collection("Orange";"Apple";"Grape";"pear";"Banana";"fig";"Blackberry";"Passion fruit")
 $c2:=$fruits.orderByMethod("WordLength")
  //$c2=[Passion fruit,Blackberry,Orange,Banana,Apple,Grape,pear,fig]

Voici le code de la méthode WordLength:

 $1.result:=Longueur(Chaine($1.value))>Longueur(Chaine($1.value2))



Voir aussi  

collection.orderBy( )
collection.sort( )

 
PROPRIÉTÉS 

Produit : 4D
Thème : Collections
Nom intl. : collection.orderByMethod( )

Commande(s) éligible(s) à l'exécution dans un process préemptif

 
PAGE CONTENTS 
 
HISTORIQUE 

 
UTILISATION DE L'ARTICLE

4D - Langage ( 4D v17)
4D - Langage ( 4D v17.1)
4D - Langage ( 4D v17.2)
4D - Langage ( 4D v17.3)
4D - Langage ( 4D v17.4)