Struktury danych .NET: ArrayList, List, HashTable, Dictionary, SortedList, SortedDictionary - Szybkość, pamięć i kiedy używać każdego?
.NET ma wiele złożonych struktur danych. Niestety, niektóre z nich są dość podobne i nie zawsze jestem pewien, kiedy z nich korzystać i kiedy użyć innego. Większość moich książek w języku C # i Visual Basic mówi o nich do pewnego stopnia, ale tak naprawdę nigdy nie wchodzą w żadne prawdziwe szczegóły.
Jaka jest różnica między Array, ArrayList, List, Hashtable, Dictionary, SortedList i SortedDictionary?
Które z nich są wyliczalne (IList - czy można wykonać pętle „foreach”)? Które używają par klucz / wartość (IDict)?
Co z śladem pamięci? Prędkość wstawiania? Szybkość pobierania?
Czy są jakieś inne struktury danych, o których warto wspomnieć?
Nadal szukam więcej szczegółów na temat wykorzystania pamięci i prędkości (notacja Big-O).