Record.Field ดึงค่าของฟิลด์ที่ระบุจากบันทึก (record) โดยใช้ชื่อฟิลด์เป็นข้อความ ต่างจาก Record.FieldOrDefault ตรงที่จะเกิดข้อผิดพลาดหากฟิลด์ไม่พบ
| อาร์กิวเมนต์ | ชนิด | คำอธิบาย |
|---|---|---|
| record | record | Record ที่ต้องการดึงค่า |
| field | text | ชื่อ Field ที่ต้องการดึงค่า (เป็น Text) |
Record.Field ดึงค่าจากระเบียนเมื่อคุณรู้ชื่อฟิลด์แน่นอน ต่างจาก Record.FieldOrDefault ตรงที่จะโยนข้อผิดพลาดหากฟิลด์หายไป มีประโยชน์มากในงานจริงเมื่อต้องการดึงข้อมูลจาก JSON หรือแปลงข้อมูลจากแหล่งอื่น
ที่เจ๋งคือ Record.Field ยืดหยุ่นที่สุดเพราะรับชื่อฟิลด์เป็นข้อความ (dynamic) ได้ ทำให้คุณสามารถเปลี่ยนชื่อฟิลด์ตามต้องการผ่านตัวแปร แล้วไม่ต้องเขียนโค้ดใหม่ ประโยชน์สูงสุดเมื่อข้อมูลมาจากอินพุตแบบไดนามิก
ส่วนตัวผม Record.Field เป็นตัวช่วยหลักในการตรวจสอบข้อมูลจาก API หรือการรวมข้อมูลจากหลายแหล่ง เหมือนกับการอ้างอิงคนตรงเวลา ทำให้ debug ได้ง่าย
เมื่อชื่อ Field ที่ต้องการดึงถูกเก็บอยู่ในตัวแปร หรือมาจากการคำนวณ (Dynamic Field Access)
ใช้ร่วมกับ List.Transform เพื่อดึงค่า Field จาก List ของ Record
ดึงค่าของ Field "Name" ออกมา เพราะเราบอกชัดเจนว่าต้องการค่า "Name" ฟังก์ชันจึงส่งกลับข้อความ Bob
รองรับชื่อ Field ภาษาไทยได้ไม่มีปัญหา ส่วนตัวผมใช้เป็นประจำทำให้รหัสอ่านเข้าใจง่ายขึ้น
ใช้ตัวแปร TargetField เก็บชื่อ Field ที่ต้องการดึงค่า ทำให้สามารถเปลี่ยนชื่อ Field ได้ตามต้องการ (Dynamic) นี่คือจุดเด่นหลักของ Record.Field
เมื่อ JSON ถูก Parse เป็น Record จะได้ข้อมูลที่เป็น Field ต่างๆ Record.Field ช่วยดึงค่าจาก Field ที่กำหนดออกมาได้สะดวก
ผมเห็นบ่อยที่คนสับสน Record.Field ยืดหยุ่นกว่าเพราะรับชื่อฟิลด์เป็นข้อความ (dynamic) ส่วน [FieldName] ต้องเขียนชื่อตายตัวในสูตร ถ้าต้องการเปลี่ยนชื่อฟิลด์ตามเงื่อนไข Record.Field จึงเหมาะกว่า
โปรแกรมจะโยน Error ชื่อ 'The field … of the record wasn't found.' ออกมา ผมเลยแนะนำให้ใช้ try-catch หรือเปลี่ยนมาใช้ Record.FieldOrDefault ถ้าไม่แน่ใจว่าฟิลด์มีหรือไม่
Record.Field โยน Error ถ้าฟิลด์หายไป ส่วน Record.FieldOrDefault ส่งกลับค่า null หรือค่าตัวอักษร (default) แทน ผมแนะนำให้ใช้ Record.FieldOrDefault เมื่อข้อมูลมาจากแหล่งที่ไม่แน่ใจว่ามีฟิลด์ครบหรือไม่
ได้แต่ต้องเรียก Record.Field หลายครั้ง ผมแนะนำให้ใช้ Record.ToList ถ้าต้องการค่าทั้งหมด หรือใช้ let…in เพื่อเก็บค่าแต่ละ Field ไว้ตัวแปรแต่ละอัน
ฟังก์ชันที่ผู้เขียนโยงไว้กับ Record.Field จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง
Adds a new field with a specified name and value to a record | เพิ่มฟิลด์ใหม่พร้อมชื่อและค่าเข้าไปใน Record
นับจำนวน Field ทั้งหมดใน Record
ฟังก์ชันสำหรับดึงรายชื่อ Field ทั้งหมดจาก Record และคืนค่าเป็น List ของ Text
ดึงค่าจาก Record ถ้าไม่เจอให้คืนค่า Default
คืนค่าข้อมูล (Values) ทั้งหมดจาก Record เป็น List
ตรวจสอบว่า Record มี Field ที่ระบุหรือไม่
Removes specified fields from a record | ลบฟิลด์ที่ระบุออกจาก Record
Record.SelectFields จะคืนค่า Record ใหม่ที่มีเฉพาะ Field ที่ระบุใน List เท่านั้น สามารถจัดการกับ Field ที่หายไปได้ด้วย option missingField
ยังไม่มีบทความที่เกี่ยวข้องกับฟังก์ชันนี้
Comments
อีเมลของคุณจะไม่ถูกเผยแพร่