List.Generate
สร้างรายการค่า
Syntax
List.Generate(
initial as function,
condition as function,
next as function,
optional selector as function
) as list
Remarks
สร้างรายการค่าโดยใช้ฟังก์ชันที่มีให้ ฟังก์ชัน initial
ฟังก์ชันสร้างค่าตัวเลือกเริ่มต้น ซึ่งทดสอบกับ condition
แล้ว หากค่าตัวเลือกได้รับการอนุมัติ ค่าจะถูกส่งคืนโดยเป็นส่วนหนึ่งของรายการผลลัพธ์ และค่าตัวเลือกถัดไปจะถูกสร้างขึ้นโดยการส่งผ่านค่าที่ได้รับอนุมัติใหม่ไปที่ next
เมื่อค่าตัวเลือกไม่ตรงกับ condition
กระบวนการสร้างรายการจะหยุดลง อาจมีการระบุพารามิเตอร์เพิ่มเติม selector
เพื่อแปลงรายการในรายการผลลัพธ์
Examples
Example #1
สร้างรายการโดยเริ่มต้นที่สิบ โดยค่อยๆ ลดทีละหนึ่ง และตรวจดูให้แน่ใจว่าแต่ละรายการมีค่ามากกว่าศูนย์
List.Generate(() => 10, each _ > 0, each _ - 1)
Result:
{10, 9, 8, 7, 6, 5, 4, 3, 2, 1}
Example #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]
)
Result:
{1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
Category
List.Generators