0

myCollection不包含带有的元素Id == 10

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

在上述情况下,myVar1仅代表空集合。

但是为什么在下面的例子中我得到一个序列不包含匹配元素异常而不是仅仅nullmyVar2

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

如何正确解释?

4

2 回答 2

7

如果您想要第一个匹配项,请使用,如果没有,请使用FirstOrDefaultnull。

var myVar2 = myCollection.FirstOrDefault(q => q.Id == 10);
于 2013-02-07T18:57:35.947 回答
4

因为First()期望返回一个且只有一个结果。它并不意味着处理一个或没有结果。

你需要FirstOrDefault()那个。

于 2013-02-07T18:57:48.853 回答