Was ist der Unterschied zwischen SortedList und SortedDictionary?
Gibt es tatsächlich einen praktischen Unterschied zwischen einer SortedList<TKey,TValue>
und ein SortedDictionary<TKey,TValue>
? Gibt es Umstände, unter denen Sie gezielt die eine und nicht die andere?
InformationsquelleAutor der Frage Shaul Behr | 2009-06-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ja - Ihre Leistungsmerkmale unterscheiden sich deutlich. Es wäre wahrscheinlich besser, Sie zu nennen
SortedList
undSortedTree
wie spiegelt sich die Umsetzung genauer an.Blick auf die MSDN-Dokumentation für jede von Ihnen (
SortedList
SortedDictionary
) für die details der Leistung, die für verschiedene Operationen in unterschiedlichen situtations. Hier ist eine schöne Zusammenfassung (aus derSortedDictionary
docs):(
SortedList
tatsächlich unterhält ein sortiertes array, anstatt mit einem Baum. Es verwendet immer noch die binäre Suche zum finden von Elementen.)InformationsquelleAutor der Antwort Jon Skeet
Hier ist eine tabellarische Ansicht, wenn es hilft...
Vom Leistung Perspektive:
Aus einer Umsetzung Perspektive:
Zu etwa umschreiben, wenn Sie benötigen raw-Leistung
SortedDictionary
könnte eine bessere Wahl sein. Wenn Sie benötigen weniger Speicherbedarf und indizierten AbrufSortedList
besser passt. Siehe diese Frage mehr auf, Wann welcher zu benutzen ist.Lesen Sie mehr hierhierhierhier und hier.
InformationsquelleAutor der Antwort nawfal
Ich geknackt öffnen Sie den Reflektor, um einen Blick auf diese, wie es scheint ein wenig Verwirrung über
SortedList
. Es ist in der Tat nicht eine binäre Suchbaum, es ist eine sortiert werden (nach Schlüssel) array von Schlüssel-Wert-Paare. Es gibt auch eineTKey[] keys
variable sortiert ist in sync mit den Schlüssel-Wert-Paare und verwendet, um die binäre Suche.Hier ist eine Quelle (targeting .NET 4.5) zur Sicherung meiner Ansprüche.
Private Mitglieder
SortedList.ctor(IDictionary, IComparer)
SortedList.Add(TKey, TValue) : void
SortedList.RemoveAt(int) : void
InformationsquelleAutor der Antwort Daniel Imms
Check-out die MSDN-Seite für SortedList:
Vom Abschnitt "Bemerkungen":
InformationsquelleAutor der Antwort Stephan
Ist die visuelle Darstellung, wie Leistungen miteinander vergleichen.
InformationsquelleAutor der Antwort Lev
Ist genug gesagt, bereits auf das Thema, aber um es einfach zu halten, hier ist mein nehmen.
Sortiert Wörterbuch sollte verwendet werden, wenn-
Auf der anderen Seite, Sortierte Liste sollte verwendet werden, wenn-
Hoffe, das hilft!!
InformationsquelleAutor der Antwort Prakash Tripathi
Index-Zugriff (hier erwähnten) ist der praktische Unterschied.
Wenn Sie brauchen, um den Zugriff auf die Nachfolger oder Vorgänger, müssen Sie SortedList. SortedDictionary nicht tun, also Sie sind ziemlich begrenzt wie Sie können die Sortierung (erste /foreach).
InformationsquelleAutor der Antwort Guy