LINQ - 序列不包含任何元素
问题描述:
我正在使用LINQ查询,如下所示。LINQ - 序列不包含任何元素
object.collection.where(t => t.id.Equals("2")).First();
我收到错误“Sequence contains no elements”。为什么结果在结果中不包含元素时会抛出错误?如果没有找到结果,它是否应该不返回null?这是使用SQL时发生的情况。
答
object.collection.where(t => t.id.Equals("2")).FirstOrDefault();
答
它按设计工作。 First()方法在知道至少有一行将被返回时被调用。如果不是这种情况,请调用FirstOrDefault()。
有两个第一个变体的原因是为了获得特定的例外情况,使调试更容易。而不是一个模糊的空引用异常,你会得到一个更具体的“序列不包含任何元素”。 – 2011-01-10 13:48:22