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

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

将上面的内容更改为 var result 帮助是否等同于 Colrow result = new ColorRow ?

不知道如何处理上面的 IEnumerable 为空,空。

我目前正在使用 try and catch 但似乎并不干净。

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

1 回答 1

0

我目前正在使用 try and catch 但似乎并不干净。

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

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

对于另一个关于Any并且Count您确定您的代码正在编译的问题,因为您似乎正在查询Fruit.Apple.Colors并且您正在创建 IEnumerable ColorRow,它应该是:

IEnumerable<Color>....

(如果使用隐式类型(var)正在解决问题,则可能您在分配中使用了错误的类型)

于 2013-02-25T10:50:56.640 回答