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
来转换生成的列表中的项。
创建一个列表,从 10 开始,重复递减 1,并确保每项都大于 0。
使用情况
List.Generate(() => 10, each _ > 0, each _ - 1)
输出
{10, 9, 8, 7, 6, 5, 4, 3, 2, 1}
生成包含 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}