Condividi tramite


List.Generate

Sintassi

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

Informazioni su

Genera un elenco di valori usando le funzioni fornite. La funzione initial genera un valore candidato iniziale, che viene quindi testato su condition. Se il valore candidato viene approvato, viene restituito come parte dell'elenco risultante e il valore candidato successivo viene generato passando il valore appena approvato a next. Quando un valore candidato non corrisponde a condition, il processo di generazione dell'elenco si arresta. È anche possibile specificare un parametro facoltativo, selector, per trasformare gli elementi nell'elenco risultante.

Esempio 1

Crea un elenco iniziando da dieci, decrementando ripetutamente di uno e assicurandoti che ogni elemento sia maggiore di zero.

Utilizzo

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

Output

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

Esempio 2

Generare un elenco di record contenenti x e y, dove x è un valore e y è un elenco. x deve essere meno di 10 e rappresentare il numero di elementi nell'elenco y. Dopo la generazione dell'elenco, restituire solo i valori x.

Utilizzo

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

Output

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