Del via


List.Generate

Syntaks

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

Omtrent

Genererer en liste over værdier ved hjælp af de angivne funktioner. Funktionen initial genererer en startværdi for kandidaten, som derefter testes i forhold til condition. Hvis kandidatværdien godkendes, returneres den som en del af den resulterende liste, og den næste kandidatværdi genereres ved at overføre den nyligt godkendte værdi til next. Når en kandidatværdi ikke stemmer overens med condition, stopper processen til oprettelse af listen. Der kan også angives en valgfri parameter, selector, for at transformere elementerne på den resulterende liste.

Eksempel 1

Opret en liste ved at starte med ti, gentagne gange med én formindskelse, og sørg for, at hvert element er større end nul.

brug

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

output

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

Eksempel 2

Opret en liste over poster, der indeholder x og y, hvor x er en værdi, og y er en liste. x skal forblive mindre end 10 og repræsentere antallet af elementer på listen y. Når listen er genereret, skal du kun returnere x-værdierne.

brug

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}