据我所知,如果记录集为空,则linq方法FirstOrDefault()返回null.为什么不能使用??运算符来对抗函数?像这样:
Double d = new Double[]{}.FirstOrDefault() ?? 0.0;
Run Code Online (Sandbox Code Playgroud)
更新
我不想检查,如果d是null后来在我的代码.并做:
Double d new Double[]{}.FirstOrDefault() == null
? 0.0
: new Double[]{}.FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)
... 要么:
var r = new Double[]{}.FirstOrDefault();
Double d = r == null ? 0.0 : r;
Run Code Online (Sandbox Code Playgroud)
...似乎有点矫枉过正 - 我想在一行代码中进行空检查.