2013-06-02 39 views
4

我需要知道滿足條件的元素的數量,所以我執行以下操作:如何獲得使用LINQ的前兩個事件?

int numberOfItems = context.SomeEntity.Count(someCondition); 

但我只需要檢查,當且僅當,numberOfItems正好是1,我想改善通過在前兩次出現滿足條件時停止計數項目(當遇到滿足條件的前兩次出現時,不需要繼續檢查它),該查詢更爲高效。執行類似於:

bool existsOnlyOne = context.SomeEntity.... 

如何實現此目的?

+0

從經驗來看,Single()方法是實現這一目標的最快方法之一,但這會涉及異常驅動的開發(這會很糟糕)。您可以破解打開Single()的代碼並查看您找到的內容。 – Squid

回答

4

如果您對將由Take(2)方法可以忽略兩個以上的項目,從第三個的項目可以改變的條件

bool existsOnlyOne = context.SomeEntity.Where(someCondition).Take(2).Count() == 1;