Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

เมธอด DefaultIfEmpty ใน C#


ภาพรวม

เมธอด DefaultIfEmpty() ใน LINQ ใช้จัดการกับ ลำดับว่าง (empty sequence) โดยคืนค่าลำดับที่มีองค์ประกอบเดียวคือ ค่าเริ่มต้น (default value) ของชนิดข้อมูล แทนที่จะเป็นลำดับว่าง

รูปแบบการใช้งาน

List emptyList = 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 }