แชร์ผ่าน


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}