J'ai une classe, montre ci-dessous, qui est utilisé comme une clé dans un Dictionary<ValuesAandB, string>
Je rencontre des problèmes lorsque je cherche une clé dans ce dictionnaire, elle ne trouve jamais du tout. Comme vous pouvez le voir, j'ai remplacé Equals
et GetHashCode
.Personnalisé Classe utilisée comme clé dans le dictionnaire mais clé non trouvée
Pour chercher la clef J'utilise
ValuesAandB key = new ValuesAandB(A,B);
if (DictionaryName.ContainsKey(key)) {
...
}
Y at-il autre chose que je suis absent? Quelqu'un peut-il signaler ce que je fais mal?
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();
}
}
}
Et avant que quelqu'un ne demande, oui les valeurs sont dans le dictionnaire!
Oui, les commentaires ont été pris à bord et la bonne réponse a été donnée, mais Greg Beech est arrivé devant vous, j'ai peur. Merci pour l'aide cependant. –