| 

.NET C# Java Javascript Exception

1
Wann sollte man welche Variante verwenden?
Welche Variante bietet gegenüber der anderen welchen Vorteil! Oder gibt es noch eine ganz andere (vielleicht sogar bessere) Lösung? Vielen Dank!
18.02.2011
mha 165 1 6
4 Antworten
2
Während Dictionary<TKey, TValue> die eine Möglichkeit ist, wäre KeyedCollection<TKey, TValue> die andere. Letztere ist zwar abstract und Du musst GetKeyForItem implementieren, dafür ist sie aber auch Serializable und sollte schneller sein als Dictionary<TKey, TValue>.

Ausserdem sollte Dictionary<TKey, TValue> lt. Framework Design Guide nicht in public APIs verwendet werden, da es sich um Datenstrukturen handelt, die für die interne Implementierung innerhalb einer Klasse vorgesehen ist. IDictionary<TKey, TValue> sollte dann verwendet werden.
18.02.2011
Torsten Weber 691 1 8
1
In dem Zusammenhang möchte ich noch erwähnen dass man in multithread Szenarien auch an das In dem Zusammenhang möchte ich noch erwähnen dass man in multithread Szenarien auch an das ConcurrentDictionary<TKey,TValue> denken sollte.
18.02.2011
Gentlehag 1,0k 2 8
0
Hi,

die NameValueCollection ist sozusagen eine Altlast, die hat man verwendet, als es noch keine
generischen Parameter gab.
Nimm am Besten das Dictionary.
18.02.2011
KHoffmann 939 6
Danke für deine flotte Antwort!
mha 18.02.2011
-1
Naja, die NameValueCollection enthält nur Strings (Ist ne Altlast, wurde ja schon erwähnt) wohingegen Dictionary<TKey, TValue> je nach definition andere Typen aufnehmen kann.
Ich würde generell nur noch das Dictionary<TKey, TValue>, auch für reine String-Dictionaries un nur um nicht jedesmal wieder umdenken zu müssen.
18.02.2011
Jürgen Gutsch 1,1k 4 7

Stelle deine Collections-Frage jetzt!