据我所知,如果记录集是空的,linq方法FirstOrDefault()
返回null
。为什么不能使用??
运算符来对付这个函数?像这样:FirstOrDefault()无法与? operator
Double d = new Double[]{}.FirstOrDefault() ?? 0.0;
更新
我不想检查,如果d
是null
在我后面的代码上。而这样做的:
Double d new Double[]{}.FirstOrDefault() == null
? 0.0
: new Double[]{}.FirstOrDefault();
...或:
var r = new Double[]{}.FirstOrDefault();
Double d = r == null ? 0.0 : r;
...似乎有点矫枉过正 - 我倒是喜欢做这个空支票的一行代码。
当你测试的时候,你可以用'default(double)'替换'new Double [] {}。FirstOrDefault();'。 – Kobi 2010-08-13 11:50:39