List.Generate

Syntax

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

Info

Generiert eine Liste von Werten mithilfe der bereitgestellten Funktionen. Die initial-Funktion generiert einen Startkandidatenwert, der dann anhand von condition getestet wird. Wenn der Kandidatenwert genehmigt wird, wird er als Teil der resultierenden Liste zurückgegeben, und der nächste Kandidatenwert wird durch Übergeben des neu genehmigten Werts an next generiert. Sobald ein Kandidatenwert nicht mit condition übereinstimmt, wird der Listengenerierungsprozess beendet. Ein optionaler Parameter selector kann auch bereitgestellt werden, um die Elemente in der resultierenden Liste zu transformieren.

Beispiel 1

Erstellen Sie eine Liste, indem Sie bei 10 beginnen, wiederholt um eins verringern und sicherstellen, dass jedes Element größer als Null (0) ist.

Verwendung

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

Ausgabe

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

Beispiel 2

Generiert eine Liste von Datensätzen, die x und y enthalten, wobei x ein Wert und y eine Liste ist. x sollte kleiner als 10 bleiben und die Anzahl der Elemente in der Liste y darstellen. Nach dem Generieren der Liste werden nur die x-Werte zurückgegeben.

Verwendung

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

Ausgabe

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