Perché c'è solo un SortedList<TKey, TValue>
che sembra più un dizionario, ma non lo SortedList<T>
che in realtà è solo un elenco che viene sempre ordinato?Perché non esiste una lista ordinata <T> in .NET?
Secondo the MSDN documentation on SortedList, in realtà è implementato internamente come una matrice di dimensioni dinamiche di KeyValuePair<TKey, TValue>
che viene sempre ordinata dalla chiave. La stessa classe non sarebbe più utile come un elenco di qualsiasi tipo T
? Non sarebbe meglio anche il nome?
hmm, un pensiero interessante. Ma se avessi una SortedList come eseguirà l'ordinamento (dove si trova la 'chiave')? Dovrei fare in modo che Foo implementi IComparable? –
RPM1984
Devi essere d'accordo con te: dato il nome, non ti aspetteresti che questa classe contenga coppie chiave-valore. Ovviamente non è un dizionario, poiché è possibile avere la stessa chiave presente nell'elenco più volte. –
@ RPM1984 - sì, si potrebbe rendere Foo IComparable o si potrebbe fornire un comparatore quando si costruisce l'elenco. –