C# Linq的DefaultIfEmpty()方法 – 返回序列中的元素,如果序列为空则返回指定的默认值

  • Post category:C#

介绍:

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"