据我所知,在Linq中,方法FirstOrDefault()
可以返回非Default
的null值。我还没有弄清楚的是,当查询结果中没有项目时,这个(和类似的)方法可以返回除null之外的哪些东西。有没有什么特别的方法可以将其设置为,如果某个特定查询没有值,则返回某个预定义的值作为默认值?
发布于 2021-11-19 12:31:55
.NET6 / c#10解决方案
.NET6 / c#10通过向*OrDefault LINQ方法添加新功能来解决此问题。新的重载允许您在序列为空时指定要使用的默认值。
public static TSource FirstOrDefault<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,bool> predicate, TSource defaultValue);
返回序列中满足条件的第一个元素,如果找不到这样的元素,则返回指定的默认值。
下面是一个例子;
var nums = new List<int> { 1, 2, 3 };
var target = 4;
var value = nums.FirstOrDefault(x => x == target, -1); // value becomes -1.
https://stackoverflow.com/questions/12972295
复制相似问题