Ler em inglês

Compartilhar via


List.Generate

Sintaxe

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

Sobre

Gera uma lista de valores usando as funções fornecidas. A função initial gera um valor de candidato inicial, que é testado em relação a condition. Se o valor do candidato for aprovado, ele será retornado como parte da lista resultante e o próximo valor do candidato será gerado passando o valor recém-aprovado para next. Se um valor candidato não corresponder a condition, o processo de geração de lista será 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 até um e garantindo que cada item seja maior que zero.

Usage

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, em que x é um valor e y é uma lista. x deve permanecer menor que 10 e representar o número de itens na lista y. Depois que a lista for gerada, retorne apenas os valores x.

Usage

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}