myCollection
不包含Id == 10
的元素:
var myVar1 = myCollection.Where(q => q.Id == 10);
在上面的例子中,myVar1
只代表空集合。
但是为什么在以下示例中我得到 序列不包含匹配元素 例外,而不只是null
中的myVar2
?
var myVar2 = myCollection.First(q => q.Id == 10);
如何正确解释?
答案 0 :(得分:7)
如果您想要第一个匹配项,请使用FirstOrDefault
;如果没有,则使用null。
var myVar2 = myCollection.FirstOrDefault(q => q.Id == 10);
答案 1 :(得分:4)
因为First()
期望返回一个且只有一个结果。它并不意味着处理一个或没有结果。
您需要FirstOrDefault()
。