English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

عامل التوليد LINQ DefaultIfEmpty

إذا كان المجموعة المحددة لـ DefaultIfEmpty() فارغة، فإن طريقة DefaultIfEmpty() ستعود إلى مجموعة جديدة تحتوي على القيمة الافتراضية.

يستقبل طريقة DefaultIfEmpty() الإضافية إحداثيات قيمة، يجب استبدالها بالقيمة الافتراضية.

انظر إلى هذا المثال.

IList<string> emptyList = new List<string>();
var newList1 = emptyList.DefaultIfEmpty(); 
var newList2 = emptyList.DefaultIfEmpty("None"); 
Console.WriteLine("Count: {0}" , newList1.Count());
Console.WriteLine("Value: {0}" , newList1.ElementAt(0));
Console.WriteLine("Count: {0}" , newList2.Count());
Console.WriteLine("Value: {0}" , newList2.ElementAt(0));
الإخراج:

Count: 1
Value:
Count: 1
Value: None

في المثال السابق، يعود emptyList.DefaultIfEmpty() إلى مجموعة جديدة من الأعداد الصحيحة، يحتوي على عنصر له قيمة null، لأن null هو القيمة الافتراضية لـ string. يمكن أيضًا استخدام طريقة أخرى emptyList.DefaultIfEmpty("None") لتقديم مجموعة من الأعداد الصحيحة، يحتوي على عنصر له قيمة "None" بدلاً من null.

في هذا المثال، يتم عرض كيفية استدعاء DefaultIfEmpty على مجموعة int.

IList<int> emptyList = new List<int>();
var newList1 = emptyList.DefaultIfEmpty(); 
var newList2 = emptyList.DefaultIfEmpty(100);
Console.WriteLine("Count: {0}" , newList1.Count());
Console.WriteLine("Value: {0}" , newList1.ElementAt(0));
Console.WriteLine("Count: {0}" , newList2.Count());
Console.WriteLine("Value: {0}" , newList2.ElementAt(0));
الإخراج:

Count: 1
القيمة: 0
Count: 1
القيمة: 100

في هذا المثال، يتم عرض استخدام طريقة DefaultIfEmpty() لجمعيات النوع المعقد.

IList<Student> emptyStudentList = new List<Student>();
var newStudentList1 = studentList.DefaultIfEmpty(new Student());
                 
var newStudentList2 = studentList.DefaultIfEmpty(new Student(){ 
                StudentID = 0, 
                StudentName = "" });
Console.WriteLine("Count: {0} ", newStudentList1.Count());
Console.WriteLine("Student ID: {0} ", newStudentList1.ElementAt(0));
Console.WriteLine("Count: {0} ", newStudentList2.Count());
Console.WriteLine("Student ID: {0} ", newStudentList2.ElementAt(0).StudentID);
الإخراج:

Count: 1
Student ID:
Count: 1
Student ID: 0