List.Generate
Genererar en lista med värden.
Syntax
List.Generate(
initial as function,
condition as function,
next as function,
optional selector as function
) as list
Remarks
Genererar en lista med värden med hjälp av de angivna funktionerna. Funktionen initial
genererar ett startförslagsvä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.
Examples
Example #1
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.
List.Generate(() => 10, each _ > 0, each _ - 1)
Result:
{10, 9, 8, 7, 6, 5, 4, 3, 2, 1}
Example #2
Generera en lista över poster som innehåller x och y, där x är värdet och y en lista. x ska vara mindre än 10 och representera antalet objekt i listan y. Returnera endast x-värdena när listan har genererats.
List.Generate(
() => [x = 1, y = {}],
each [x] < 10,
each [x = List.Count([y]), y = [y] & {x}],
each [x]
)
Result:
{1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
Category
List.Generators