Partilhar via


List.Generate

Sintaxe

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

Sobre nós

Gera uma lista de valores usando as funções fornecidas. A função initial gera um valor candidato inicial, que é então testado em relação a condition. Se o valor candidato for aprovado, ele será retornado como parte da lista resultante e o próximo valor candidato será gerado passando o valor recém-aprovado para next. Quando um valor candidato não corresponde a condition, o processo de geração de lista é interrompido. Um parâmetro opcional, selector, também pode ser fornecido para transformar os itens na lista resultante.

Exemplo 1

Crie uma lista começando em dez, diminuindo repetidamente por um e garantindo que cada item seja maior que zero.

Utilização

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

Saída

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

Exemplo 2

Gere uma lista de registros contendo x e y, onde x é um valor e y é uma lista. x deve permanecer inferior a 10 e representar o número de itens na lista y. Depois que a lista for gerada, retorne apenas os valores x.

Utilização

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

Saída

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