List.Generate
List.Generate(initial as function, condition as function, next as function, optional selector as nullable function) as list
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.
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}
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}