List.Sort

La función List.Sort ordena una lista según un determinado criterio.

Sintaxis

List.Sort(
    list as list,
    optional comparisonCriteria as any
) as list

Parámetros
  • list: lista a ordenar
  • comparisonCriteria: (opcional) criterio de ordenación
Información adicional

El criterio de ordenación puede ser de los siguientes tipos:

  • Puede tomar los valores Order.Ascending u Order.Descending para controlar el sentido de ordenación a aplicar.
  • Puede tratarse de una función de un argumento (véase ejemplo más adelante)
  • Si se desea controlar también el sentido de la ordenación (ascendente o descendente), puede añadirse como segundo argumento de la función una lista conteniendo la función que determine el orden y el sentido de la ordenación (véase ejemplo más adelante)
  • También puede aplicarse una función de dos argumentos que devuelva -1, 0 o 1 en función de la relación entre los argumentos.
Ejemplos

Podemos ordenar la lista {4, 2, -1, 0} según el criterio por defecto (valores ascendentes) con la siguiente expresión:

List.Sort(
    {4, 2, -1, 0}
)

List

Función M List.Sort

Un clic en el enlace List nos muestra la lista devuelta:

Función M List.Sort

Por supuesto, este resultado es el mismo que obtenemos especificando la ordenación ascendente:

List.Sort(
    {4, 2, -1, 0},
    Order.Ascending
)

List

Función M List.Sort

La lista obtenida es la misma:

Función M List.Sort

Podríamos ordenarla de forma descendente añadiendo el argumento Order.Descending:

List.Sort(
    {4, 2, -1, 0},
    Order.Descending
)

List

Función M List.Sort

La lista resultante es la siguiente:

Función M List.Sort

También es posible aplicar una función personalizada. En el siguiente ejemplo se ordenan los textos según su longitud aplicando una función de un argumento:

List.Sort(
    {"rinoceronte", "gato", "elefante", "perro"},
    (x) => Text.Length(x)
)

List

Función M List.Sort

El resultado obtenido es el siguiente:

Función M List.Sort

Siguiendo con el mismo ejemplo, si quisiéramos determinar el orden del resultado, podríamos usar como segundo argumento de la función una lista formada por la clave de la ordenación y el orden deseado:

List.Sort(
    {"rinoceronte", "gato", "elefante", "perro"},
    {each Text.Length(_), Order.Descending}
)

List

Función M List.Sort

El resultado en este caso es el siguiente:

Función M List.Sort
Categoría
Funciones de lista
Enviado por admin el Vie, 31/07/2020 - 14:23