我有一個IEnumerable,其中T是一個複雜的對象。我需要檢查列表中是否有5個或更多項目與lambda表達式匹配。目前我使用的是這樣的:檢查IEnumerable <T>有5個或更多的匹配
if(myList.Count(c=> c.PropertyX == desiredX && c.Y != undesiredY) >= 5)...
不過,我myList中成長爲包含10K +對象這將成爲一個巨大的瓶頸,並很可能會找到一個匹配的前100項以上(但我可以」做出這個假設)。
我該如何儘可能有效地做到這一點。
謝謝所有 - 從未使用跳過所有我的編程年...不是我有一個理由! –
你是否真的想得到這五個,並與他們做些什麼,或者一旦有五場比賽你會處理所有事情?我注意到,在一些答案中,它檢查它們是否存在,但是將它們有效地拋棄,這意味着如果你需要它們,那麼你可能會重新做出謂詞,如果你可能檢查了很多對象,那麼效率可能不是很高... – Chris
I抓取我目前想要使用的所有對象(500 - 10K對象)的列表。然後我需要檢查該列表以確保列表中每個項目類型至少有5個。如果沒有,我讓用戶知道這個集合沒有X類型的最小數量。然後我回到與更大的集合一起工作。 –