2013-02-07 67 views
0

myCollection不包含元件與Id == 10「序列不包含匹配元件」,而不是僅僅無效

var myVar1 = myCollection.Where(q => q.Id == 10); 

在上述情況下的myVar1表示只是空集合。

但爲什麼要在下面的例子中,我得到一個序列中沒有匹配的元素例外,而不是僅僅nullmyVar2

var myVar2 = myCollection.First(q => q.Id == 10); 

如何正確解釋?

回答

4

因爲First()期望返回一個且只有一個結果。這並不意味着要處理一個或沒有結果。

您需要FirstOrDefault()

7

如果您想要第一個匹配項,請使用FirstOrDefault;如果沒有,請使用null。

var myVar2 = myCollection.FirstOrDefault(q => q.Id == 10); 
相關問題