IEnumerable Any或Count抛出异常

时间:2013-02-25 10:48:41

标签: c#-4.0

IEnumerable<ColorRow> result = (from a in Fruit.Apple.Colors where (a.color == "red") select a);

如果我尝试使用result.Any()或Count(),它会在没有返回结果时抛出异常,我理解上面的ColorRow将为null,但我该如何检查?

将上面改为var结果帮助它等同于Colrow result = new ColorRow ??

不确定如何处理上面的IEnumerable为null,为空。

我目前正在尝试捕捉,但似乎并不干净。

try
{
result.FirstOrDefault().Color= "pink";
return true;
}
catch
{
return false;
}

1 个答案:

答案 0 :(得分:0)

  

我目前正在尝试捕捉,但似乎并不干净。

您可以检查对象是否为null,然后比较颜色,而不是尝试catch。

var temp = result.FirstOrDefault();
if(temp != null && temp.Color == "Pink")
   return true;
else
   return false;

关于AnyCount的其他问题,您确定您的代码正在编译,因为您似乎在查询Fruit.Apple.Colors并且您正在创建ColorRow的IEnumerable ,应该是:

IEnumerable<Color>....

(如果使用隐式类型(var)修复问题,可能是你在分配中使用了错误的类型)