Przeczytaj w języku angielskim

Udostępnij za pośrednictwem


List.Generate

Składnia

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

Informacje

Generuje listę wartości przy użyciu podanych funkcji. Funkcja initial generuje początkową wartość kandydata, która jest następnie testowana względem conditionelementu . Jeśli wartość kandydata zostanie zatwierdzona, zostanie ona zwrócona jako część wynikowej listy, a następna wartość kandydata zostanie wygenerowana przez przekazanie nowo zatwierdzonej wartości do next. Gdy wartość kandydata nie będzie zgodna conditionz wartością , proces generowania listy zostanie zatrzymany. Opcjonalny parametr , selectormożna również podać, aby przekształcić elementy na wynikowej liście.

Przykład 1

Utwórz listę, zaczynając od dziesięciu, wielokrotnie dekrementując ją, i upewniając się, że każdy element jest większy niż zero.

Użycie

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

Wyjście

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

Przykład 2

Wygeneruj listę rekordów zawierających wartości x i y, gdzie x jest wartością, a y jest listą. wartość x powinna pozostać mniejsza niż 10 i reprezentować liczbę elementów na liście y. Po wygenerowaniu listy zwróć tylko wartości x.

Użycie

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

Wyjście

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