ภาพรวม
เมธอด DefaultIfEmpty() ใน LINQ ใช้จัดการกับ ลำดับว่าง (empty sequence) โดยคืนค่าลำดับที่มีองค์ประกอบเดียวคือ ค่าเริ่มต้น (default value) ของชนิดข้อมูล แทนที่จะเป็นลำดับว่าง
รูปแบบการใช้งาน
ListemptyList = new List (); var result = emptyList.DefaultIfEmpty(); // คืนลำดับที่มี { 0.0 }
ตัวอย่างโค้ดเต็ม
using System;
using System.Linq;
using System.Collections.Generic;
class Demo
{
static void Main()
{
List myList = new List(); // ว่าง
var res = myList.DefaultIfEmpty();
foreach (var a in res)
{
Console.WriteLine(a); // แสดง 0
}
}
}
ผลลัพธ์
0
การใช้งานขั้นสูง
DefaultIfEmpty(defaultValue)- ระบุค่าเริ่มต้นเองได้ (เช่นDefaultIfEmpty(-1))- ใช้ร่วมกับ
Left Joinใน LINQ query syntax - ป้องกัน
NullReferenceExceptionหรือข้อผิดพลาดจากลำดับว่าง
ตัวอย่างระบุค่าเริ่มต้นเอง
var res = emptyList.DefaultIfEmpty(-1); // คืน { -1 } แทน { 0 }