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

Opérateur LINQ DefaultIfEmpty

Si l'ensemble donné à DefaultIfEmpty() est vide, la méthode DefaultIfEmpty() renverra un nouveau ensemble avec une valeur par défaut.

Une autre méthode surchargée de DefaultIfEmpty() accepte un paramètre de valeur, qui doit être remplacé par la valeur par défaut.

Voyons l'exemple suivant.

IList<string> emptyList = new List<string>();
var newList1 = emptyList.DefaultIfEmpty(); 
var newList2 = emptyList.DefaultIfEmpty("None"); 
Console.WriteLine("Count : {0}" , newList1.Count());
Console.WriteLine("Valeur : {0}" , newList1.ElementAt(0));
Console.WriteLine("Count : {0}" , newList2.Count());
Console.WriteLine("Valeur : {0}" , newList2.ElementAt(0));
Sortie :

Count : 1
Valeur :
Count : 1
Valeur: None

Dans l'exemple précédent, emptyList.DefaultIfEmpty() renvoie un nouveau ensemble de chaînes de caractères, dont un élément a la valeur null, car null est la valeur par défaut de string. Une autre méthode emptyList.DefaultIfEmpty("None") renvoie un ensemble de chaînes de caractères, dont un élément a la valeur "None" au lieu de null.

L'exemple suivant montre comment appeler DefaultIfEmpty sur un ensemble int.

IList<int> emptyList = new List<int>();
var newList1 = emptyList.DefaultIfEmpty(); 
var newList2 = emptyList.DefaultIfEmpty(100);
Console.WriteLine("Count : {0}" , newList1.Count());
Console.WriteLine("Valeur : {0}" , newList1.ElementAt(0));
Console.WriteLine("Count : {0}" , newList2.Count());
Console.WriteLine("Valeur : {0}" , newList2.ElementAt(0));
Sortie :

Count : 1
Valeur : 0
Count : 1
Valeur : 100

L'exemple suivant montre la méthode DefaultIfEmpty() pour les collections de types complexes.

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("ID d'étudiant : {0} ", newStudentList1.ElementAt(0));
Console.WriteLine("Count : {0} ", newStudentList2.Count());
Console.WriteLine("ID d'étudiant : {0} ", newStudentList2).ElementAt(0).StudentID);
Sortie :

Count : 1
ID d'étudiant :
Count : 1
ID d'étudiant : 0