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}