2011-01-10 49 views
7

我正在使用LINQ查詢,如下所示。LINQ - 序列不包含任何元素

object.collection.where(t => t.id.Equals("2")).First(); 

我收到錯誤「Sequence contains no elements」。爲什麼結果在結果中不包含元素時會拋出錯誤?如果沒有找到結果,它是否應該不返回null?這是使用SQL時發生的情況。

回答

5
object.collection.where(t => t.id.Equals("2")).FirstOrDefault(); 
16

它按設計工作。 First()方法在知道至少有一行將被返回時被調用。如果不是這種情況,請調用FirstOrDefault()。

+1

有兩個第一個變體的原因是爲了獲得特定的例外情況,使調試更容易。而不是一個模糊的空引用異常,你會得到一個更具體的「序列不包含任何元素」。 – 2011-01-10 13:48:22

相關問題