List.Generate
List.Generate(initial as function, condition as function, next as function, optional selector as nullable function) as list
Genera una lista de valores con las funciones proporcionadas. La función initial
genera un valor candidato inicial, que luego se prueba en condition
. Si el valor candidato se aprueba, se devuelve como parte de la lista resultante y se genera el valor candidato siguiente al pasar el valor recién aprobado a next
. Cuando un valor candidato no coincide con el valor 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.
Cree una lista que empiece por diez y descienda de uno en uno; asegúrese 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}
Generar una lista de registros que contengan x e y, donde x es un valor e y, una lista. x debe ser menor que 10 y representar el número de elementos de la lista y. Una vez generada la lista, devolver solo los valores de 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}