次の方法で共有


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

リストを作成するには、10 から開始し、1 ずつ繰り返しデクリメントし、各項目が 0 より大きくなったかどうかを確認します。

使用方法

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}