2011-05-25 101 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

相關問題