Les på engelsk

Del via


List.Generate

Syntaks

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

Om

Genererer en liste over verdier ved hjelp av de angitte funksjonene. Funksjonen initial genererer en startkandidatverdi, som deretter testes mot condition. Hvis kandidatverdien godkjennes, returneres den som en del av resultatlisten, og den neste kandidatverdien genereres ved å sende den nylig godkjente verdien til next. Når en kandidatverdi ikke samsvarer condition, stopper prosessen for listegenerering. En valgfri parameter, selectorkan også angis for å transformere elementene i resultatlisten.

Eksempel 1

Opprett en liste ved å starte på ti, gjentatte ganger avslå med én, og sikre at hvert element er større enn null.

Bruk

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

Utdata

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

Eksempel 2

Generer en liste over poster som inneholder x og y, der x er en verdi og y er en liste. x bør forbli mindre enn 10 og representere antall elementer i listen y. Når listen er generert, returnerer du bare x-verdiene.

Bruk

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

Utdata

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