Ich wollte nur fragen, was drei verschiedene Wörterbücher benötigt - OrderedDictionary, ListDictionary und HybridDictionary, wenn alle ähnliche Funktionen ausführen. Keiner von ihnen ist sortiert, Elemente der Sammlung können durch Schlüssel in allen von ihnen abgerufen werden. Also, was ist der Zweck von drei verschiedenen Klassen?
Danke
Auf den Punkt gebracht:
Dictionary
- Nun, a Wörterbuch.
ListDictionary
- Wird für kleine Sammlungen verwendet , normalerweise weniger als 10 Elemente
HybridDictionary
- Wird bei der Sammlung verwendet Größe ist unbekannt (schaltet Implementierungen je nach Größe der Sammlung um)
OrderedDictionary
- Die Elemente eines OrderedDictionary wird im Gegensatz zu den Elementen eines SortedDictionary<TKey, TValue>
Um Kyles Antwort zu ergänzen:
OrderedDictionary ermöglicht das Abrufen nach Schlüssel und Index (es verwendet intern eine Hashtabelle und ein Array), hat jedoch einen höheren Aufwand pro Element
ListDictionary hat eine verknüpfte Liste als interne Struktur, es funktioniert nicht gut zum Einfügen und Abrufen von Schlüsseln, behält aber die ursprüngliche Einfügereihenfolge
bei HybridDictionary ist ein ListDictionary, wenn das Wörterbuch nicht viele Elemente enthält und in eine Hashtable konvertiert, wenn die Anzahl der Elemente ein spezifisches Limit erreicht (ich persönlich denke, dass Sie Dictionary & lt;, & gt; statt seit C # 2)
Tags und Links .net c# collections