Vous êtes sur le site Web historique de la documentation de 4D. Les documentations sont progressivement déplacées vers developer.4d.com |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v19.8
collection.orderBy( )
|
collection.orderBy ( {critère} ) -> Résultat | ||||||||
Paramètre | Type | Description | ||||||
critère | Texte, Collection, Entier long |
![]() |
Texte : chemin(s) de propriété(s) à utiliser pour trier la collection Collection : Collection d'objets critère Entier long : ck ascending ou ck descending (valeurs scalaires) |
|||||
Résultat | Collection |
![]() |
Copie triée de la collection (shallow copy) | |||||
La méthode collection.orderBy( ) retourne une nouvelle collection contenant tous les éléments de la collection d'origine triés selon les critères définis par le paramètre critère.
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.
Si vous omettez le paramètre critère, la méthode trie les valeurs scalaires de la collection par ordre croissant (les autres types d'éléments tels que les objets ou les collections sont retournés sans être trié). Vous pouvez modifier ce tri par défaut en passant la constante ck ascending ou ck descending dans le paramètre critère (voir ci-dessous).
Vous pouvez également passer le paramètre critère afin de configurer le tri des éléments de la collection. Les syntaxes suivantes sont prises en charge pour ce paramètre :
Constante | Type | Valeur | Comment |
ck ascending | Entier long | 0 | Les éléments sont triés par ordre croissant (défaut) |
ck descending | Entier long | 1 | Les éléments sont triés par ordre décroissant |
Si la collection contient des éléments de différents types, ils sont d'abord groupés par type et triés par la suite. Les types sont retournés dans l'ordre suivant :
Tri d'une collection de nombres par ordre croissant et décroissant :
C_COLLECTION($c;$c2;$3)
$c:=New collection
For($vCounter;1;10)
$c.push(Random)
End for
$c2:=$c.orderBy(ck ascending)
$c3:=$c.orderBy(ck descending)
Tri d'une collection d'objets basé sur une formule de texte avec noms de propriétés :
C_COLLECTION($c)
$c:=New collection
For($vCounter;1;10)
$c.push(New object("id";$vCounter;"value";Random))
End for
$c2:=$c.orderBy("value desc")
$c2:=$c.orderBy("value desc, id")
$c2:=$c.orderBy("value desc, id asc")
Tri d'une collection d'objets sur des propriétés :
C_COLLECTION($c)
$c:=New collection
$c.push(New object("name";"Cleveland";"phones";New object("p1";"01";"p2";"02")))
$c.push(New object("name";"Blountsville";"phones";New object("p1";"00";"p2";"03")))
$c2:=$c.orderBy("phones.p1 asc")
Tri d'une collection d'objets via une collection d'objets critères :
C_COLLECTION($crit;$c)
$crit:=New collection
$c:=New collection
For($vCounter;1;10)
$c.push(New object("id";$vCounter;"value";Random))
End for
$crit.push(New object("propertyPath";"value";"descending";True))
$crit.push(New object("propertyPath";"id";"descending";False))
$c2:=$c.orderBy($crit)
Tri avec un chemin de propriété :
C_COLLECTION($crit;$c)
$c:=New collection
$c.push(New object("name";"Cleveland";"phones";New object("p1";"01";"p2";"02")))
$c.push(New object("name";"Blountsville";"phones";New object("p1";"00";"p2";"03")))
$crit:=New collection(New object("propertyPath";"phones.p2";"descending";True))
$c2:=$c.orderBy($crit)
Produit : 4D
Thème : Collections
Numéro :
905251
Créé : 4D v16 R6
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)