Lezen in het Engels

Delen via


List.Generate

Syntaxis

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

Over

Hiermee wordt een lijst met waarden gegenereerd met behulp van de opgegeven functies. De initial functie genereert een beginkandidaatwaarde, die vervolgens wordt getest op basis van condition. Als de kandidaatwaarde is goedgekeurd, wordt deze geretourneerd als onderdeel van de resulterende lijst en wordt de volgende kandidaatwaarde gegenereerd door de zojuist goedgekeurde waarde door te geven aan next. Zodra een kandidaatwaarde niet overeenkomt met condition, stopt het proces voor het genereren van de lijst. Er kan ook een optionele parameter, selector, worden opgegeven om de items in de resulterende lijst te transformeren.

Voorbeeld 1

Maak een lijst door te beginnen bij tien, herhaaldelijk met één verlagen en ervoor te zorgen dat elk item groter is dan nul.

Gebruik

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

uitvoer

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

Voorbeeld 2

Genereer een lijst met records met x en y, waarbij x een waarde is en y een lijst is. x moet kleiner dan 10 blijven en het aantal items in de lijst y vertegenwoordigen. Nadat de lijst is gegenereerd, worden alleen de x-waarden geretourneerd.

Gebruik

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

uitvoer

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