मेरे पास एक वर्ग है, नीचे दिखाएं, जिसका उपयोग Dictionary<ValuesAandB, string>
में एक कुंजी के रूप में किया जाता है। मुझे इस शब्दकोश के भीतर कोई भी कुंजी खोजने का प्रयास करते समय समस्याएं आ रही हैं, यह कभी नहीं पाती इसको बिलकुल भी नहीं। जैसा कि आप देख सकते हैं, मैंने Equals
और GetHashCode
ओवरराइड किया है।कस्टम क्लास शब्दकोश में कुंजी के रूप में उपयोग किया जाता है लेकिन कुंजी नहीं मिली
कुंजी मैं
ValuesAandB key = new ValuesAandB(A,B);
if (DictionaryName.ContainsKey(key)) {
...
}
उपयोग कर रहा हूँ पता लगाने के लिए ऐसा कुछ हो जिसमें मैं याद कर रहा हूँ है? क्या कोई यह बता सकता है कि मैं क्या गलत कर रहा हूं?
private class ValuesAandB {
public string valueA;
public string valueB;
// Constructor
public ValuesAandB (string valueAIn, string valueBIn) {
valueA = valueAIn;
valueB = ValueBIn;
}
public class EqualityComparer : IEqualityComparer<ValuesAandB> {
public bool Equals(ValuesAandB x, ValuesAandB y) {
return ((x.valueA.Equals(y.valueA)) && (x.valueB.Equals(y.valueB)));
}
public int GetHashCode(ValuesAandB x) {
return x.valueA.GetHashCode()^x.valueB.GetHashCode();
}
}
}
और किसी से पूछने से पहले, हाँ मूल्य शब्दकोश में हैं!
हां, बोर्ड पर ली गई टिप्पणियां और सही जवाब के रूप में सही जवाब दिया गया, लेकिन ग्रेग बीच आपके सामने डर गया। हालांकि मदद के लिए धन्यवाद। –