List.Generate
List.Generate(initial as function, condition as function, next as function, optional selector as nullable function) as list
Genererar en lista med värden med hjälp av de angivna funktionerna. Funktionen initial
genererar ett startkandidatvärde som sedan testas mot condition
. Om kandidatvärdet godkänns returneras det som en del av den resulterande listan och nästa kandidatvärde genereras genom att det nyligen godkända värdet skickas till next
. När ett kandidatvärde inte matchar condition
stoppas listgenereringsprocessen. En valfri parameter, selector
, kan också tillhandahållas för att transformera objekten i den resulterande listan.
Skapa en lista genom att börja vid tio, minska upprepade gånger med en och se till att varje objekt är större än noll.
Användning
List.Generate(() => 10, each _ > 0, each _ - 1)
utdata
{10, 9, 8, 7, 6, 5, 4, 3, 2, 1}
Generera en lista med poster som innehåller x och y, där x är ett värde och y är en lista. x ska förbli mindre än 10 och representera antalet objekt i listan y. När listan har genererats returnerar du endast x-värdena.
Användning
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}