लघु प्रश्नसी # में एक सरणी Hashing
कैसे एक Array
के लिए GetHashCode
लागू करने के लिए।
this.array[n] == otherObject.array[n]
array
में सभी n
के लिए:
विवरण
मैं एक वस्तु है कि Equals
ओवरराइड करता है, कि जाँच की है।
स्वाभाविक रूप से मैं पूरक GetHashCode
लागू करना चाहिए। मैं अगर वहाँ नेट तरीका यह है सोच रहा था, या अगर मैं की तरह
hash = hash^array[n]
स्पष्टीकरण अपने ही, कुछ को लागू करना चाहिए
मेरे वस्तु एक सरणी शामिल है, और मैं पर इच्छुक हूँ सरणी के तत्वों के लिए GetHashCode। सरणी समतुल्यता के लिए मेरा कोड उदाहरण के लिए है - जैसे कि मेरा प्रश्न कहता है लेकिन शायद मैं स्पष्ट नहीं था, मुझे GetHashCode
में रुचि है (Equals
नहीं)। मैं कहता हूँ मैं स्वाभाविक रूप से पूरक GetHashCode
को लागू करना चाहिए, क्योंकि यह नेट की एक आवश्यकता (Dictionary
आदि के लिए सही ढंग से कार्य करने के लिए) इस बार Equals
ओवरराइड की गई है लागू करने के लिए है। धन्यवाद।
जवाब पर एक नज़र पोस्ट किया है [यहां] (http://stackoverflow.com/a/7244729/833070)। दूसरे शब्दों में, आप अपने खुद के विभिन्नता को लागू करने या किसी अन्य उपकरण का उपयोग कर बेहतर कर रहे हैं, आप उपयोग नहीं कर सकते 'GetHashCode()' या 'बराबर()' किसी सरणी – Draken
लिए क्या कर क्यों नहीं 'this.array [n]। बराबर (अन्य ऑब्जेक्ट.एरे [एन]) ''एन' के लिए? –
आप समानता के लिए दो सरणियों की तुलना करना चाहते हैं, तो आप 'SequenceEqual' विस्तार –