c# - What is returned when Distinct is called with a custom comparer? -


यदि इस तरह से विजेट का एक वर्ग है:

  सार्वजनिक वर्ग विजेट {सार्वजनिक डबल मूल्य { प्राप्त; सेट; } सार्वजनिक स्ट्रिंग प्रकार {get; सेट; } सार्वजनिक int आईडी {प्राप्त करें; सेट; } सार्वजनिक स्ट्रिंग नाम {get; सेट; }}  

और उनमें से एक सूची बनाएं:

  सूची & lt; विजेट & gt; विजेट = नई सूची & amp; विजेट & gt; नया विजेट {आईडी = 1, नाम = "वन", मूल्य = 3.00, प्रकार = "गोया"}, नया विजेट {आईडी = 2, नाम = "दो", मूल्य = 5.00, प्रकार = "खस्ता"}, नया विजेट {आईडी = 2, नाम = "तीन", मूल्य = 3.00, प्रकार = "हार्ड"}, नया विजेट {आईडी = 2, नाम = "चार", मूल्य = 3.00, प्रकार = "चॉइ"}, नया विजेट { आईडी = 2, नाम = "पांच", मूल्य = 2.50, प्रकार = "गोया"}};  

और फिर मैं IEnumerable को बुलाता हूं। एक कस्टम तुलनार के साथ ऐसा मानें:

  IEqualityComparer & lt; विजेट & gt; WidgetComparer = नई लेम्डा कॉम्पैरर & lt; विजेट & gt; ((मद 1, आइटम 2) = & gt; आइटम 1। मूल्य == आइटम 2। मूल्य); Widgets.Distinct (widgetComparer);  

तब (जैसा मैं देख रहा हूं) 3 ऑब्जेक्ट्स लौटाए जाने चाहिए (प्रत्येक मूल्य श्रेणी के लिए)।

3.00 का प्रकार क्या है (गोया, हार्ड या चॉवी)?

क्या यह एक चुनता है? (मैं अलग बेहतर समझने की कोशिश कर रहा हूँ क्योंकि मेरा असली अलग मुझे विशिष्ट परिणाम नहीं दे रहा है।)

अलग तुलनात्मक निर्धारित करता है जो भी लेता है; इसलिए यदि एक ही मूल्य के साथ 3 अलग-अलग ऑब्जेक्ट हैं, और आपकी कस्टम क्वॉलर्स केवल कीमत पर दिखता है, तो इसके आधार पर यह एक और एक ही पर विचार करना चाहिए, यह कैसे निर्भर करता है इस पर निर्भर करता है।

HTH। / P>


Comments

Popular posts from this blog

objective c - iPhone and it's wireless area -

unix - Listing all shared memory segments used by a process on AIX5.3+ -

tsql - Correct sql/hql query (aggregate in where clause) -