Laden...

[erledigt] SortedDictionary, IComparable und ContainsKey

Erstellt von squadwuschel vor 12 Jahren Letzter Beitrag vor 12 Jahren 892 Views
S
squadwuschel Themenstarter:in
406 Beiträge seit 2007
vor 12 Jahren
[erledigt] SortedDictionary, IComparable und ContainsKey

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

49.485 Beiträge seit 2005
vor 12 Jahren

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

S
squadwuschel Themenstarter:in
406 Beiträge seit 2007
vor 12 Jahren

danke dir für die Schnelle Antwort hat geholfen.

thx squadwuschel

Mein Blog über .NET und MVC / EF | Meine kostenlose Onlinearbeitszeitverwaltung My:Worktime

916 Beiträge seit 2008
vor 12 Jahren

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...