मैं एक शब्दकोश है जो एक सूची से keyed है:सी # सूची के रूप में शब्दकोश कुंजी
private Dictionary<List<custom_obj>, string> Lookup;
मैं ContainsKey उपयोग करने के लिए कोशिश कर रहा हूँ, लेकिन यह काम किया जाना प्रतीत नहीं होता है, और मुझे पता नहीं क्यों है । यहाँ मेरी दृश्य स्टूडियो तत्काल खिड़की से डिबग जानकारी है:
?Lookup.Keys.ElementAt(7)[0]
{custom_obj}
Direction: Down
SID: 2540
?Lookup.Keys.ElementAt(7)[1]
{custom_obj}
Direction: Down
SID: 2550
searchObject[0]
{custom_obj}
Direction: Down
SID: 2540
searchObject[1]
{custom_obj}
Direction: Down
SID: 2550
?Lookup.ContainsKey(searchObject)
false
मेरे सामान्य ज्ञान में, कि पिछले ContainsKey सच होना चाहिए। उम्मीद है कि मैंने यहां पर्याप्त जानकारी शामिल की है ... कोई विचार?
धन्यवाद!
GetHashCode में वापसी की कमी है। –
त्वरित नोट: जैसा कि उत्तर संकेत देता है, आपको इस तुलनाकर्ता का उपयोग नहीं करना चाहिए। बराबर विधि आदेश के प्रति संवेदनशील है लेकिन हैश विधि नहीं है। –