c# - Difference between string.GetHashCode and IEqualityComparer<string>.Default.GetHashCode -
मैं अपने डेटा के साथ distinct ()
का उपयोग करना चाहूंगा, जिसे IEnumerable & lt; KeyValuePair & lt; IdentType, स्ट्रिंग & gt; & gt;
। इस मामले में, मुझे अपना खुद का IEqualityComparer
लागू करना होगा और मेरा प्रश्न है:
क्या लागूकरणों के बीच में कोई अंतर है?
सार्वजनिक Int GetHashCode (कीवालपेअर & lt; पहचान प्रकार, स्ट्रिंग & gt; obj) {वापसी समानता कम्परियर & lt; स्ट्रिंग & gt; डीफॉल्ट.गेटहाशकोड (obj.Value); }
और
सार्वजनिक int GetHashCode (KeyValuePair & lt; IdentType, string & gt; obj) {return obj.Value.GetHashCode (); }
आपके दो विधियों में केवल एक छोटा सा अंतर है।
< पी> क्लास इम्प्रेशमेंट GetHashCode (obj.Value)
को कॉल किया जाता है सार्वजनिक ओवरराइड इंट होशकोड (टी ओबीजे) {if (obj == null) 0; वापसी obj.GetHashCode (); }
जो आप obj.Value.GetHashCode (); को कॉल करने के समान है, सीधे इस तथ्य को छोड़कर कि यदि आपके पास एक नल स्ट्रिंग डिफ़ॉल्ट तुलना है 0 लौट आएंगे और सीधे कॉल संस्करण एक रिक्त संदर्भ अपवाद निकाल देंगे।
Comments
Post a Comment