Próbuję utworzyć słownik w języku C#, który używa tablicy boolowskiej dla kluczy.Używanie tablicy logicznej jako niestandardowego klucza słownika
Dictionary<bool[], string>
Tablica bool ma stałą długość równą 1000, a wszystkie mają tę samą długość. Mam problem z hashcode i powszechna metoda "exclusive" lub "nie ma tyle sensu ze względu na długość tablicy.
Podobne pytania dotyczące StackOverflow są adresowane za pomocą metody "exclusive" lub "w metodzie GetHashCode". Nie sądzę, że działa w tym kontekście. Chciałbym używać go jako:
Dictionary<bool[], string> myDict =
new Dictionary<bool[], string>(EqualityComparer);
gdzie EquaityComparer robi coś takiego:
public class EqualityComparer : IEqualityComparer<bool[]>
{
public bool Equals(bool[] x, bool[] y)
{
return x.SequenceEqual(y);
}
public int GetHashCode(bool[] x)
{
// this part doesn't work correctly
int hc = x.GetHashCode();
return hc;
}
}
oczywiście wszystko z typowych obaw o tablica bool jest zmienny i wielkości dowolny klawisz pochodzi jest istotne do wykonania tutaj ... chociaż nie mam rozwiązania.
Zamiast wywoływania domyślnego 'GetHashCode' dla' bool [] ', myślę, że musisz zaimplementować swój własny. – FishBasketGordo
'return x.Intersect (y) == x;' również nie jest poprawne. Porównujesz 'instancje' 'IEnumerable' i bool array –
Sure. Wylądowałem na użyciu metody SequenceEqual dla metody równości. Tutaj bardziej potrzebuję pomocy z hashcode. – Vic