Notwendigkeit von OrderedDictionary, ListDictionary und HybridDictionary

8

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

    
Batrickparry 07.01.2011, 06:38
quelle

2 Antworten

11

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> Klasse. Sie können auf Elemente entweder über den Schlüssel oder über den Index zugreifen.

Kyle Rozendo 07.01.2011, 06:40
quelle
6

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)     

vc 74 07.01.2011 07:48
quelle

Tags und Links