FirstOrDefault()无法配合??操作员 [英] FirstOrDefault() unable to couple with ?? operator
本文介绍了FirstOrDefault()无法配合??操作员的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
据我了解,如果记录集为空,则linq方法FirstOrDefault()
返回null
.为什么不能对函数使用??
运算符?像这样:
As far as I can understand, the linq method FirstOrDefault()
returns null
if a record-set is empty. Why can't use the ??
operator against the function? Like so:
Double d = new Double[]{}.FirstOrDefault() ?? 0.0;
更新
我不想稍后在我的代码中检查d
是否为null
.并这样做:
I don't want to check if d
is null
later on in my code. And doing:
Double d new Double[]{}.FirstOrDefault() == null
? 0.0
: new Double[]{}.FirstOrDefault();
...或:
var r = new Double[]{}.FirstOrDefault();
Double d = r == null ? 0.0 : r;
...似乎有点矫kill过正-我想在一行代码中执行null检查.
... seems a bit overkill--I'd like to do this null-check in one line of code.
推荐答案
实际上,FirstOrDefault<T>()
返回T,它是一个值或default(T)
.
Actually, FirstOrDefault<T>()
returns T, which is either a value or default(T)
.
default(T)
是null
或(T)0
这篇关于FirstOrDefault()无法配合??操作员的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文