什么是实现这种模式?:匹配的ID与对象的数组
void ValidateId(int Id, MyObject[] objects)
{
foreach (var myObject in objects)
{
if (Id == myObject.Id){
return;
}
}
throw new Exception("Invalid Id");
}
什么是实现这种模式?:匹配的ID与对象的数组
void ValidateId(int Id, MyObject[] objects)
{
foreach (var myObject in objects)
{
if (Id == myObject.Id){
return;
}
}
throw new Exception("Invalid Id");
}
第一个更好的办法,我就不会丢除非情况例外,否则是例外情况。相反,宁愿返回一个布尔值,并用友好的错误消息处理返回值为false。
作为验证,您可以使用LINQ ....
bool ValidateId(int Id, MyObject[] objects)
{
return objects.Any(o=>o.Id == Id);
}
是的,我可以覆盖.Equals()为myObject的只检查ID是平等的,但有另一种方式? – lockstock 2011-05-25 02:58:28
您已经遗漏了很多关于如何使该方法有用的细节,特别是考虑到其他更直接的方法。 – 2011-05-25 03:42:58
是的,一个无效的id的情况下需要我的代码中的异常。我对Linq不是很熟悉,所以或许现在是我开始更多地使用它的时候了,欢呼声。 – lockstock 2011-05-25 03:01:11
@lockstock:如果ID无效,它将返回false。 – naveen 2011-05-25 03:03:07
@lockstock,如果你要检查linq,你应该考虑使用Linqpad。它可以让你运行linq查询,而无需构建整个程序,它甚至可以连接到SQL数据库,因此你可以对SQL数据运行查询。 – 2011-05-25 03:05:00