Partager via


List.Generate

Syntaxe

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

À propos

Génère une liste de valeurs à l’aide des fonctions fournies. La initial fonction génère une valeur de candidat de départ, qui est ensuite testée par rapport conditionà . Si la valeur candidate est approuvée, elle est retournée dans le cadre de la liste résultante et la valeur candidate suivante est générée en transmettant la valeur nouvellement approuvée à next. Une fois qu’une valeur candidate ne correspond conditionpas, le processus de génération de liste s’arrête. Un paramètre facultatif, selectorpeut également être fourni pour transformer les éléments de la liste résultante.

Exemple 1

Créez une liste en commençant à dix, décrémentant à plusieurs reprises par un, et assurez-vous que chaque élément est supérieur à zéro.

Utilisation

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

Output

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

Exemple 2

Générez une liste d’enregistrements contenant x et y, où x est une valeur et y est une liste. x doit rester inférieur à 10 et représenter le nombre d’éléments dans la liste y. Une fois la liste générée, retournez uniquement les valeurs x.

Utilisation

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}