El método collection.orderByMethod( ) devuelve una nueva colección que contiene todos los elementos de la colección en el orden definido por el método nomMet.
Este método devuelve una copia superficial, lo que significa que los objetos o colecciones en ambas colecciones comparten la misma referencia. Si la colección original es una colección compartida, la colección devuelta también es una colección compartida.
Nota: este método no modifica la colección original.
En nomMet, pase un método de comparación que compare dos valores y devuelva true en $1.result si el primer valor es menor que el segundo valor. Puede ofrecer parámetros adicionales a nomMet si es necesario.
- nomMet recibirá los siguientes parámetros:
- $1 (objeto), donde:
- $1.value (todo tipo): valor del primer elemento a comparar
- $1.value2 (todo tipo): valor del segundo elemento a comparar
- $2...$N (todo tipo): parámetros adicionales
- nomMet define el siguiente parámetro:
- $1.result (booleano): true si $1.value < $1.value2, de lo contrario false
Usted desea ordenar una colección de cadenas en orden numérico en lugar de orden alfabético:
Aquí está el código para NumAscending:
$1.result:=Num($1.value)<Num($1.value2)
Usted desea ordenar una colección de cadenas por su longitud:
C_COLLECTION($fruits)
$fruits:=New collection("Orange";"Apple";"Grape";"pear";"Banana";"fig";"Blackberry";"Passion fruit")
$c2:=$fruits.orderByMethod("WordLength")
Aquí está el código para WordLength:
$1.result:=Length(String($1.value))>Length(String($1.value2))