Dies ist die alte 4D Dokumentations-Website. Die neue und aktualisierte Dokumentation finden Sie unter developer.4d.com |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v19.8
collection.orderByMethod()
|
collection.orderByMethod() ( MethodenName {; extraParam}{; extraParam2 ; ... ; extraParamN} ) -> Funktionsergebnis | ||||||||
Parameter | Typ | Beschreibung | ||||||
MethodenName | Text |
![]() |
Name der Methode für die Sortierreihenfolge | |||||
extraParam | Ausdruck |
![]() |
Parameter für die Methode | |||||
Funktionsergebnis | Collection |
![]() |
Sortierte Kopie der Collection (flache Kopie) | |||||
Die Funktion collection.orderByMethod() sortiert die Elemente der Collection nach der Methode MethodenName und gibt eine neue sortierte Collection zurück.
Diese Funktion gibt eine flache Kopie (shallow copy) zurück, d.h. Objekte oder Collections der beiden Collections nutzen dieselbe Referenz. Ist die ursprüngliche Collection eine shared collection, ist die zurückgegebene Collection ebenfalls eine shared collection.
Hinweis: Diese Funktion ändert nicht die ursprüngliche Collection.
In MethodenName übergeben Sie eine Vergleichsmethode, die zwei Werte vergleicht und wahr in $1.result zurückgibt, wenn der erste Wert kleiner als der zweite ist. Sie können bei Bedarf weitere Parameter übergeben:
Eine Collection mit Strings nicht in alphabetischer, sondern in numerischer Reihenfolge sortieren:
C_COLLECTION($c)
$c:=New collection
$c.push("33";"4";"1111";"222")
$c2:=$c.orderBy() //$c2=["1111","222","33","4"], alphabetische Reihenfolge
$c3:=$c.orderByMethod("NumAscending") // $c3=["4","33","222","1111"]
Der Code für NumAscending lautet:
$1.result:=Num($1.value)<Num($1.value2)
Eine Collection mit Strings nach Wortlänge sortieren:
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]
Der Code für WordLength lautet:
$1.result:=Length(String($1.value))>Length(String($1.value2))
Eine Collection nach Zeichencode oder Sprache sortieren:
var $strings1;$strings2 : Collection
$strings1:=New collection("Alpha";"Charlie";"alpha";"bravo";"Bravo";"charlie")
//nach Zeichencode
$strings2:=$strings1.orderByMethod("sortCollection";sk character codes)
// result: ["Alpha","Bravo","Charlie","alpha","bravo","charlie"]
//nach Sprache
$strings2:=$string1s.orderByMethod("sortCollection";sk strict)
// result: ["alpha","Alpha","bravo","Bravo","charlie","Charlie"]
Die Methode sortCollection lautet:
var$1Object
var$2Integer // Option zum Sortieren
$1.result:=(Compare strings($1.value;$1.value2;$2)<0)
Produkt: 4D
Thema: Collections
Nummer:
705253
Erstellt: 4D v16 R6
4D Programmiersprache ( 4D v19)
4D Programmiersprache ( 4D v19.1)
4D Programmiersprache ( 4D v19.4)
4D Programmiersprache ( 4D v19.5)
4D Programmiersprache ( 4D v19.6)
4D Programmiersprache ( 4D v19.7)
4D Programmiersprache ( 4D v19.8)