據我所知,如果記錄集是空的,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