Freigeben über


List.Generate

Syntax

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

About

Generiert eine Liste von Werten mithilfe der bereitgestellten Funktionen. Die initial Funktion generiert einen Startkandidatenwert, der dann auf condition. Wenn der Kandidatenwert genehmigt wird, wird er als Teil der resultierenden Liste zurückgegeben, und der nächste Kandidatenwert wird generiert, indem der neu genehmigte Wert übergeben wird next. Sobald ein Kandidatenwert nicht übereinstimmen conditionkann, wird der Prozess der Listengenerierung beendet. Ein optionaler Parameter kann auch bereitgestellt werden, selectorum die Elemente in der resultierenden Liste zu transformieren.

Beispiel 1

Erstellen Sie eine Liste, indem Sie mit zehn beginnen, wiederholt um eins erhöhen und sicherstellen, dass jedes Element größer als 0 ist.

Verwendung

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

Output

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

Beispiel 2

Generieren Sie eine Liste von Datensätzen, die x und y enthalten, wobei "x" ein Wert ist und "y" eine Liste ist. x sollte kleiner als 10 bleiben und die Anzahl der Elemente in der Liste y darstellen. Nachdem die Liste generiert wurde, geben Sie nur die x-Werte zurück.

Verwendung

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

Output

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