閱讀英文

共用方式為


List.Generate

語法

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

關於

使用提供的函式產生值清單。 initial 函式會產生起始候選值,然後針對 condition 進行測試。 如果候選值已核准,則會傳回做為結果清單的一部分,而下一個候選值會藉由將新核准的值傳遞至 next 來產生。 一旦候選值不符合 condition,清單產生程式就會停止。 您也可以提供選擇性參數 selector 來轉換結果清單中的專案。

範例 1

建立清單,從十開始、重複遞減一個,並確定每個項目大於零。

使用方式

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

輸出

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

範例 2

產生包含 x 和 y 的記錄清單,其中 x 是值,而 y 是清單。 x 應保持小於 10 且代表清單 y 中的項目數。 產生清單之後,只會傳回 x 值。

使用方式

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

輸出

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