O método collection.sort( ) ordena os elementos da coleção e devolve uma nova coleção ordenada. Este método devolve uma cópia superficial, o que significa que os objetos ou coleções em ambas coleções compartem a mesma referência.
Nota: este método modifica a coleção original.
Se for chamada a collection.sort( ) sem parâmetros, só são classificados os valores escalares (número, texto, data, booleanos). Os elementos são ordenados como padrão em ordem ascendente, de acordo com seu tipo.
Se quiser ordenar os elementos da coleção em outra ordem ou ordenar qualquer tipo de elemento, deve oferecer em nomMet um método de comparação que compare dois valores e devolva true em $1.result se o primeiro valor for menor que o segundo valor. Pode oferecer parâmetros adicionais a nomMet se for necessário.
- nomMet receberá os parâmetros abaixo:
- $1 (objeto), onde:
- $1.value (todo tipo): valor do primeiro elemento a ser comparado
- $1.value2 (todo tipo): valor do segundo elemento a ser comparado
- $2...$N (todo tipo): parâmetros adicionais
- nomMet define o parâmetro abaixo:
- $1.result (booleano): true se $1.value < $1.value2, do contrário false
Se a coleção contiver elementos de diferentes tipos, primeiro são agrupados por tipo e são ordenados depois. Os tipos são devolvidos na ordem abaixo:
- null
- booleanos
- strings
- números
- objetos
- coleções
- datas
C_OBJECT($1)
$1.result:=String($1.value)<String($1.value2)