2013-05-16 8 views
5

से डुप्लिकेट्स और मूल निकालें मेरे पास कस्टम प्रकारों की एक सूची है जहां डुप्लिकेट मिलने पर मैं डुप्लिकेट और मूल को हटाना चाहता हूं। केवल एक संभावित डुप्लिकेट हो सकता है।सी # सूची

मैं बराबर और GetHashCode ओवरइड कर सकता हूं और फिर अलग का उपयोग कर सकता हूं लेकिन यह केवल डुप्लिकेट को हटा देता है। मुझे मूल और डुप्लिकेट दोनों को हटाने की ज़रूरत है ... कुछ सुरुचिपूर्ण चीज़ों के लिए कोई विचार इसलिए मुझे हथौड़ा का उपयोग करने की आवश्यकता नहीं है। आदेश में इस के लिए काम करने के लिए

var res = orig.GroupBy(x => x).Where(g => g.Count() == 1).Select(g => g.Key); 

, आप अभी भी GetHashCode और Equals ओवरराइड करने के लिए की जरूरत है:

+1

प्रासंगिक कोड पोस्ट करें। –

+1

क्या आप इसके साथ काम कर रहे हैं इसका एक कोडित उदाहरण प्रदान कर सकते हैं वास्तव में दूसरों को – MethodMan

उत्तर

6

आप GroupBy, Where (g => g.Count() == 1) के बाद सभी रिकॉर्ड है कि डुप्लिकेट को फ़िल्टर करने के लिए उपयोग कर सकते।

+0

करने की कोशिश कर रहे लोगों की समझ को समझने में मदद मिलेगी ...! –

3
var itemsExistingExactlyOnce = list.GroupBy(x => x) 
    .Where(group => group.Count() == 1) 
    .Select(group => group.Key); 
संबंधित मुद्दे