2013-01-22 10 views
5

मेरे पास ऑब्जेक्ट्स का संग्रह है जिसमें जॉबकोड है जो एक स्ट्रिंग मान है। हमारे पास एक व्यापार नियम है जो संग्रह के भीतर कहता है कि हमारे पास 4 से अधिक तत्व नहीं होना चाहिए जो जॉबकोड समान है। मैं इसके साथ संघर्ष कर रहा हूं क्योंकि आम तौर पर मैं सूची की तुलना में सूची में बाहरी कुछ ज्ञात मूल्यों की तुलना कर रहा हूं।यह निर्धारित करने के लिए कि क्या मान x12 से अधिक बार

किसी भी मदद की बहुत सराहना की।

उत्तर

17

आप के साथ अपने खराब नौकरियों की पहचान कर सकते हैं:

Jobs.GroupBy(j => j.JobCode).Where(g => g.Count() > 4) 

यह स्पष्ट क्या सुधारात्मक कार्रवाई आप लेना चाहते हैं नहीं है ...

+0

आह, यह समूह समूह था जो मुझे याद आ रहा था जो कि मानदंड लागू करने के लिए उप-चयन करने लगता है। धन्यवाद (4 मिनट स्वीकार करने के लिए छोड़ दिया) – deanvmc

6

आप संग्रह पर GroupBy का प्रयोग करेंगे और Count जिसके परिणामस्वरूप समूहों पर से:

var jobCodesWithMoreThanFourOccurences = collection.GroupBy(x => x.JobCode) 
                .Where(x => x.Count() > 4) 
                .Select(x => x.Key); 

Key हम अंत में चयन संपत्ति हम GroupBy में एक महत्वपूर्ण के रूप में इस्तेमाल, है यानी यह शामिल होंगे JobCode

5

आप अपने स्ट्रिंग संपत्ति के द्वारा समूह है, तो जांच कर सकता है अगर वहाँ किसी भी समूह 4 से अधिक तत्वों के साथ समूह:

bool test = jobs.GroupBy(z => z.MyString).Any(z => z.Count() > 4);