English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Если вызываемый набор для 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("Значение: {0}", newList2.ElementAt(0))
Количество: 1 Value: Количество: 1 Value: None
В предыдущем примере emptyList.DefaultIfEmpty() возвращает новый набор строк, в котором у одного элемента значение null, так как null является значением по умолчанию для строки. Другой способ 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("Значение: {0}", newList2.ElementAt(0))
Количество: 1 Значение: 0 Количество: 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("Количество: {0}", newStudentList1.Count()); Console.WriteLine("ID студента: {0}", newStudentList1.ElementAt(0)); Console.WriteLine("Количество: {0}", newStudentList2.Count()); Console.WriteLine("ID студента: {0}", newStudentList2.ElementAt(0).StudentID);
Количество: 1 ID студента: Количество: 1 ID студента: 0