Vous êtes sur le site Web historique de la documentation de 4D. Les documentations sont progressivement déplacées vers developer.4d.com

Accueil

 
4D v19.8
collection.orderByMethod( )

collection.orderByMethod( ) 


 

collection.orderByMethod ( nomMéthode {; extraParam}{; extraParam2 ; ... ; extraParamN} ) -> Résultat 
Paramètre Type   Description
nomMéthode  Texte in Nom de la méthode utilisée pour trier la collection
extraParam  Expression in Paramètre(s) pour la méthode
Résultat  Collection in Copiée triée de la collection (shallow copy)

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:=New 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:=New 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:=Length(String($1.value))>Longueur(Chaine($1.value2))

Vous souhaitez trier une collection par code de caractère ou par langage :

 var $strings1;$strings2 : Collection
 $strings1:=New collection("Alpha";"Charlie";"alpha";"bravo";"Bravo";"charlie")
 
  //à l'aide du code de caractère 
 $strings2:=$strings1.orderByMethod("sortCollection";sk codes caractère)
  // résultat : ["Alpha","Bravo","Charlie","alpha","bravo","charlie"]
 
  //à l'aide du langage
 $strings2:=$string1s.orderByMethod("sortCollection";sk strict)
  // résultat : ["alpha","Alpha","bravo","Bravo","charlie","Charlie"]

 

La méthode sortCollection :

 var$1Object
 var$2Integer // option de tri
 
 $1.result:=(Compare strings($1.value;$1.value2;$2)<0)



Voir aussi  

collection.orderBy( )
collection.sort( )

 
PROPRIÉTÉS 

Produit : 4D
Thème : Collections
Numéro : 705253

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

 
PAGE CONTENTS 
 
HISTORIQUE 

Créé : 4D v16 R6

 
UTILISATION DE L'ARTICLE

4D - Langage ( 4D v19)
4D - Langage ( 4D v19.1)
4D - Langage ( 4D v19.4)
4D - Langage ( 4D v19.5)
4D - Langage ( 4D v19.6)
4D - Langage ( 4D v19.7)
4D - Langage ( 4D v19.8)