Hio,
habe ein kleines SortedDictionary Problem und ich weiß leider nicht was ich "falsch" mache und was konkretes konnte ich im Netz nicht direkt finden.
Ich habe ein SortedDictionary<MeinTyp, MeinTyp>
dem füge ich die jeweiligen Wertepaare hinzu. (Es sei erstmal uninterressant ob das gut ist oder nicht als key und Value den gleichen Wert zu nehmen, spielt hier erstmal keine Rolle)
Dann habe ich bei MeinTyp IComparable imlementiert:
public int CompareTo(MeinTyp other)
{
if (other != null && this.CallTime == other.CallTime && this.CallDuration == other.CallDuration && this.InternalNumber == other.InternalNumber)
{
return 0;
}
else
{
return 1;
}
}
Wenn ich jetzt bei der Liste auf ContainsKey prüfe funktioniert das aber nicht, er merkt nicht ob der Key bereits einthalten ist und fügt bereits enthaltenene Keys erneut hinzu.
Wenn ich aber auf ContainsValue prüfe klappt das wunderbar, ist aber um ein vielfaches langsamer.
Was mache verstehe ich an ContainsKey in diesem Falle falsch oder was mache ich falsch, verstehe es nicht so ganz.
thx squadwuschel
Mein Blog über .NET und MVC / EF | Meine kostenlose Onlinearbeitszeitverwaltung My:Worktime
Hallo squadwuschel,
es heißt ja SortedDictionary. Du musst also schon angeben, welche Keys größer, kleiner oder gleich sind. Du musst 1, -1 oder 0 zurückgeben. Und nicht nur 0 und 1.
Wobei natürlich wirklich die Frage ist, warum du nicht einfach ein Hashset verwendest, wenn Key und Value eh immer gleich sind.
herbivore
danke dir für die Schnelle Antwort hat geholfen.
thx squadwuschel
Mein Blog über .NET und MVC / EF | Meine kostenlose Onlinearbeitszeitverwaltung My:Worktime
Hi squdwuschel,
die Antwort auf
Wobei natürlich wirklich die Frage ist, warum du nicht einfach ein Hashset verwendest, wenn Key und Value eh immer gleich sind.
bleibst du uns trotzdem schuldig.
Again what learned...