Ich versuche ein Dictionary in C# zu erstellen, das ein Boolesches Array für seine Schlüssel verwendet.Verwenden eines Booleschen Arrays als benutzerdefinierten Wörterbuchschlüssel
Das Bool-Array hat eine feste Länge von 1000, und alle haben die gleiche Länge. Ich habe Probleme mit dem Hashcode und die übliche Methode eines 'exklusiven' oder '' 'macht wegen der Länge des Arrays keinen Sinn.
Ähnliche Fragen zu StackOverflow werden mit der 'exklusiven oder' in der GetHashCode-Methode behandelt. Ich denke nicht, dass das in diesem Zusammenhang funktioniert. Ich möchte es benutzen, wie:
Dictionary<bool[], string> myDict =
new Dictionary<bool[], string>(EqualityComparer);
wo EquaityComparer tut so etwas wie:
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;
}
}
Natürlich alle üblichen Bedenken über die Bool-Array ist wandelbar und die Größe jeder abgeleiteten Schlüssel relevant Zur Leistung gilt hier ... obwohl ich keine Lösung habe.
Anstatt den Standard 'GetHashCode' für' bool [] 'aufzurufen, denke ich, dass Sie Ihren eigenen implementieren müssen. – FishBasketGordo
'return x.Intersect (y) == x;' ist auch nicht korrekt. Sie vergleichen "Instanzen" von "IEnumerable" und bool Array –
Sicher. Ich landete auf SequenceEqual für die Equals-Methode. Hier benötige ich speziell Hilfe mit dem Hashcode. – Vic