Läs på engelska

Dela via


List.Generate

Syntax

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

Om

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 conditionstoppas listgenereringsprocessen. En valfri parameter, selector, kan också tillhandahållas för att transformera objekten i den resulterande listan.

Exempel 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.

Användning

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

utdata

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

Exempel 2

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}