Passa al contenuto principale

List.Generate

Genera un elenco di valori.

Syntax

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

Remarks

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 successivo valore candidato viene generato passando il valore appena approvato a next. Quando un valore candidato non corrisponde condition, il processo di generazione dell'elenco si arresta. È anche possibile specificare un parametro facoltativo, selector, per trasformare gli elementi nell'elenco risultante.

Examples

Example #1

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

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

Result:

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

Example #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.

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

Result:

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

Category

List.Generators