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