Compartir vía


List.Generate

Sintaxis

List.Generate(
    initial as function,
    condition as function,
    next as function,
    optional selector as nullable function
) as list

Acerca de

Genera una lista de valores mediante las funciones proporcionadas. La función initial genera un valor de candidato inicial, que luego se prueba con condition. Si se aprueba el valor candidato, se devuelve como parte de la lista resultante y se genera el siguiente valor candidato pasando el valor recién aprobado a next. Una vez que un valor candidato no coincide con condition, el proceso de generación de listas se detiene. También se puede proporcionar un parámetro opcional, selector, para transformar los elementos de la lista resultante.

Ejemplo 1

Cree una lista empezando por diez, disminuyendo repetidamente por uno y asegurándose de que cada elemento sea mayor que cero.

Uso

List.Generate(() => 10, each _ > 0, each _ - 1)

Salida

{10, 9, 8, 7, 6, 5, 4, 3, 2, 1}

Ejemplo 2

Genere una lista de registros que contengan x e y, donde x es un valor e y es una lista. x debe permanecer menor que 10 y representar el número de elementos de la lista y. Una vez generada la lista, devuelva solo los valores x.

Uso

List.Generate(
    () => [x = 1, y = {}],
    each [x] < 10,
    each [x = List.Count([y]), y = [y] & {x}],
    each [x]
)

Salida

{1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9}