LINQ DefaultIfEmpty
LINQ DefaultIfEmpty()
في هذا الدرس، سنتعلّم كيفية استخدام دالة DefaultIfEmpty()
في LINQ، والتي تُستخدم لإرجاع القيمة الافتراضية إذا كانت المجموعة فارغة.
ما هي DefaultIfEmpty؟
- تُرجع نفس العناصر إذا كانت المجموعة غير فارغة.
- تُرجع عنصرًا واحدًا فقط إذا كانت المجموعة فارغة، والقيمة تكون:
- default لنوع العنصر (مثل 0 أو null).
- أو قيمة مخصصة تُمرر للدالة.
الصيغة العامة:
var result = collection.DefaultIfEmpty();
var result2 = collection.DefaultIfEmpty(customValue);
مثال 1: مع نوع int فارغ
List<int> numbers = new List<int>();
var result = numbers.DefaultIfEmpty();
foreach (var number in result)
{
Console.WriteLine(number); // 0
}
مثال 2: مع string فارغة
List<string> names = new List<string>();
var result = names.DefaultIfEmpty();
foreach (var name in result)
{
Console.WriteLine(name ?? "null");
}
مثال 3: تمرير قيمة مخصصة
var result = names.DefaultIfEmpty("No Name");
foreach (var name in result)
{
Console.WriteLine(name); // No Name
}
مثال 4: استخدام مع Left Outer Join
var result = from dept in departments
join emp in employees
on dept.ID equals emp.DepartmentID into empGroup
from emp in empGroup.DefaultIfEmpty()
select new
{
Department = dept.Name,
Employee = emp != null ? emp.Name : "No Employee"
};
جدول توضيحي:
الحالة | النتيجة |
---|---|
المجموعة تحتوي على عناصر | نفس العناصر |
المجموعة فارغة | عنصر واحد: القيمة الافتراضية |
النوع المرجعي | null |
النوع القيمي | مثل 0 أو false |
تعليقات
إرسال تعليق