2011-05-25 78 views
0

什么是实现这种模式?:匹配的ID与对象的数组

void ValidateId(int Id, MyObject[] objects) 
{ 
    foreach (var myObject in objects) 
    { 
     if (Id == myObject.Id){ 
      return; 
     } 
    } 
    throw new Exception("Invalid Id"); 
} 

回答

3

第一个更好的办法,我就不会丢除非情况例外,否则是例外情况。相反,宁愿返回一个布尔值,并用友好的错误消息处理返回值为false。

作为验证,您可以使用LINQ ....

bool ValidateId(int Id, MyObject[] objects) 
{ 
    return objects.Any(o=>o.Id == Id); 
} 
+0

是的,一个无效的id的情况下需要我的代码中的异常。我对Linq不是很熟悉,所以或许现在是我开始更多地使用它的时候了,欢呼声。 – lockstock 2011-05-25 03:01:11

+0

@lockstock:如果ID无效,它将返回false。 – naveen 2011-05-25 03:03:07

+1

@lockstock,如果你要检查linq,你应该考虑使用Linqpad。它可以让你运行linq查询,而无需构建整个程序,它甚至可以连接到SQL数据库,因此你可以对SQL数据运行查询。 – 2011-05-25 03:05:00

相关问题