2011-01-10 95 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

相关问题