什麼是實現這種模式?:匹配的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