เรียงลำดับสมาชิกในรายการตามเงื่อนไขที่กำหนด ไม่ว่าจะเป็นจากน้อยไปมากหรือมากไปน้อย
| อาร์กิวเมนต์ | ชนิด | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|---|
| list | List | รายการที่ต้องการเรียงลำดับ เป็น List ที่มีข้อมูลเป็นหมายเลข ข้อความ วันที่ หรือค่าอื่นๆ ที่สามารถเปรียบเทียบได้ | |
| [comparisonCriteria]ไม่บังคับ | Any | Order.Ascending | ตัวเลือกการเรียงลำดับ – สามารถเป็น Order.Ascending (ค่าเริ่มต้น) หรือ Order.Descending หรือฟังก์ชันเปรียบเทียบแบบกำหนดเอง ถ้าไม่ระบุ จะเรียงจากน้อยไปมากโดยอัตโนมัติ |
[ ] = อาร์กิวเมนต์ที่ไม่บังคับ
ฟังก์ชัน List.Sort ใช้สำหรับเรียงลำดับสมาชิกในรายการ (List) ตามลำดับที่ต้องการ เป็นเครื่องมือพื้นฐานที่มีประโยชน์เมื่อต้องจัดระเบียบข้อมูลตัวเลข ข้อความ หรือค่าใดๆ ที่สามารถเปรียบเทียบได้
ที่เจ๋งคือ List.Sort ยืดหยุ่นมาก – เราสามารถเรียงโดยค่าแรกๆ หรือกำหนดวิธีเปรียบเทียบแบบแนวทางเอง ตัวอย่างเช่น เรียงตามค่ากลับกัน (reciprocal) หรือเรียงตามเงื่อนไขที่ซับซ้อนโดยใช้ฟังก์ชันเปรียบเทียบ
ส่วนตัวผม มักใช้ List.Sort สำหรับการจัดระเบียบข้อมูลเบื้องต้น เช่น เรียงหมายเลขสั่งซื้อ คะแนนสอบ หรือชื่อตัวอักษรก่อนประมวลผลต่อไป ทำให้เห็นรูปแบบของข้อมูลได้ชัดเจนขึ้น 😎
เรียงรายการหมายเลขจากน้อยไปมาก ใช้ค่าเริ่มต้น Order.Ascending โดยไม่ต้องระบุ comparisonCriteria
ระบุ Order.Descending เพื่อเรียงจากค่ามากสุดลงไปน้อยสุด
List.Sort ทำงานกับข้อความได้เช่นกัน เรียงตามลำดับตัวอักษรอัตโนมัติจากน้อยไปมาก
ใช้ฟังก์ชันเปรียบเทียบสองพารามิเตอร์ (x, y) => Value.Compare(…) เพื่อเรียงตามค่าส่วนกลับ (reciprocal) ของหมายเลข ค่าน้อยที่สุดจึงอยู่ท้ายสุด
List.Sort เรียงค่าในรายการโดยตรง ส่วน List.SortBy ใช้เมื่อต้องเรียงตามค่าที่คำนวณหรือค่าช่องที่ระบุในตัวเลือก ตัวอย่าง: List.SortBy(listOfNumbers, each 1/_) เรียงตามค่าส่วนกลับ
ไม่แนะนำ List.Sort ออกแบบมาสำหรับเรียงค่าชนิดเดียวกัน ถ้ามีหมายเลขและข้อความปนกัน อาจเกิดข้อผิดพลาด ควรทำให้ข้อมูลเป็นชนิดเดียวกันก่อน
รายการว่าง {} จะคืน {} เสมอ ถ้ามี null ใน List คุณอาจต้องกรองออกก่อนเรียงหรือจัดการในฟังก์ชันเปรียบเทียบแบบกำหนดเอง
List.Sort ใช้ประสิทธิภาพเพียงพอสำหรับรายการที่มีหลักพัน หมื่น หรือแม้แต่แสนค่า ถ้าเรียงจำนวนมากมาย (เช่น ล้านค่า) อาจใช้เวลา แต่ยังรับได้ส่วนมาก
ฟังก์ชันที่ผู้เขียนโยงไว้กับ List.Sort จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง
List.Distinct จะคืน List ใหม่ที่ไม่มีค่าซ้ำกัน โดยเก็บสมาชิกตัวแรกที่พบไว้ และทิ้งตัวที่ซ้ำกันทิ้งไป สามารถกำหนด Comparer เพื่อใช้ Logic การเปรียบเทียบที่แตกต่างกันได้ เช่น ไม่สนใจตัวพิมพ์เล็ก/ใหญ่
List.MaxN คืนค่าสูงสุด N ตัวแรก หรือค่าที่ผ่านเงื่อนไขจาก List โดยเรียงลำดับจากมากไปน้อย
List.MinN คืนค่าต่ำสุด N ตัวแรก หรือค่าที่ผ่านเงื่อนไขจาก List โดยเรียงลำดับจากน้อยไปมาก
List.Reverse จะคืน List ใหม่ที่สมาชิกทั้งหมดเรียงลำดับแบบกลับกันจาก List ต้นฉบับ โดยที่สมาชิกแต่ละตัวจะยังคงเดิม แต่ตำแหน่งจะเปลี่ยนไป
Comments
อีเมลของคุณจะไม่ถูกเผยแพร่