介绍:
DefaultIfEmpty()方法是C#语言的Linq库中的一个方法。该方法用于获取数据序列(IEnumerable)中的元素,如果序列为空,则返回一个包含单一默认值的新序列。默认值是类型的默认值,例如对于int,如果序列为空,则默认值为0。
使用语法:
public static IEnumerable<TSource> DefaultIfEmpty<TSource>(this IEnumerable<TSource> source, TSource defaultValue = default(TSource));
参数:
source:要从中获取元素的序列
defaultValue:可选参数,默认值为类型的默认值
示例1:
在以下示例中,我们创建一个空列表并使用DefaulIfEmpty()方法,并指定默认值0。结果显示每个变量的值为0,因为列表为空。
List<int> list = new List<int>();
var defaultList = list.DefaultIfEmpty(0);
Console.WriteLine(defaultList.First()); // 0
示例2:
在以下示例中,我们创建一个包含两个字符串变量的列表。我们使用嵌套的DefaultIfEmpty() Linq查询,来获取列表的第二个元素,也就是不存在的元素。然后,我们使用First()方法获取第一个和唯一的元素。结果显示“default”字符串,这是原因是因为使用的默认值是字符串的默认值。
List<string> list = new List<string>()
{
"First Element"
"Second Element"
};
var defaultElement = list.Skip(1).DefaultIfEmpty();
Console.WriteLine(defaultElement.First() ?? "default"); // "default"