C# Linq:如何做“FirstOr”? [重复]

问题描述 投票:0回答:1

First()
假设有一个元素,
FirstOrDefault()
默认为类型的默认值。
FirstOr(myDefault)
我们想提供自定义默认值呢?

c# linq
1个回答
2
投票

没有这样的方法,但你当然可以自己实现。为此,您可以调用

FirstOrDefault
然后检查它是否返回
null
并改用您自己的值。你可以这样做:

var value = list.FirstOrDefault() ?? yourDefault;

您可以像这样将其封装在自己的扩展方法中:

public static class EnumerableExtensions
{
    public static T FirstOrDefault<T>(this IEnumerable<T> source, T defaultValue)
    {
        return source.FirstOrDefault() ?? defaultValue;
    }
}

你显然可以对其他重载做类似的事情。

© www.soinside.com 2019 - 2024. All rights reserved.