Dies ist die alte 4D Dokumentations-Website. Die neue und aktualisierte Dokumentation finden Sie unter developer.4d.com

Home

 
4D v19.8
collection.orderByMethod()

collection.orderByMethod() 


 

collection.orderByMethod() ( MethodenName {; extraParam}{; extraParam2 ; ... ; extraParamN} ) -> Funktionsergebnis 
Parameter Typ   Beschreibung
MethodenName  Text in Name der Methode für die Sortierreihenfolge
extraParam  Ausdruck in Parameter für die Methode
Funktionsergebnis  Collection in 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:

  • MethodenName empfängt folgende Parameter:
    • $1 (object), es gilt:
      • $1.value (beliebiger Typ): erster Elementwert zum Vergleichen
      • $1.value2 (beliebiger Typ): zweiter Elementwert zum Vergleichen
    • $2...$N (beliebiger Typ): extra Parameter
  • MethodenName setzt folgende Parameter:
    • $1.result (boolean): wahr wenn $1.value < $1.value2, sonst false

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)



Siehe auch 

collection.orderBy( )
collection.sort( )

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: Collections
Nummer: 705253

Dieser Befehl kann in preemptive Prozessen laufen

 
SEITENINHALT 
 
GESCHICHTE 

Erstellt: 4D v16 R6

 
ARTIKELVERWENDUNG

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)