猿教程 Logo

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是字符串的默认值。 另一种方法emptyList.DefaultIfEmpty(“None”)返回一个字符串集合,其中一个元素的值为“None”,而不是null。

以下示例演示在int集合上调用DefaultIfEmpty。

相关实例:

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 
Value: 0 
Count: 1 
Value: 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 
tudent ID: 0


版权声明:本站所有教程均为本站原创或翻译,转载请注明出处,请尊重他人劳动果实。请记住本站地址:www.yuanjiaocheng.net (猿教程) 作者:卿文刚
本文标题: C#环境
本文地址:http://www.yuanjiaocheng.net/Linq/linq-defaultifempty.html