System.Collections.Specialized Namespace
The System.Collections.Specialized namespace contains specialized and strongly-typed collections; for example, a linked list dictionary, a bit vector, and collections that contain only strings.
| Class | Description | |
|---|---|---|
![]() | CollectionChangedEventManager | Provides a WeakEventManager implementation so that you can use the "weak event listener" pattern to attach listeners for the CollectionChanged event. |
![]() | CollectionsUtil | Creates collections that ignore the case in strings. |
![]() | HybridDictionary | Implements IDictionary by using a ListDictionary while the collection is small, and then switching to a Hashtable when the collection gets large. |
![]() | NameObjectCollectionBase.KeysCollection | Represents a collection of the String keys of a collection. |
![]() | ListDictionary | Implements IDictionary using a singly linked list. Recommended for collections that typically include fewer than 10 items. |
![]() | NameObjectCollectionBase | |
![]() | NameValueCollection | |
![]() | NotifyCollectionChangedEventArgs | Provides data for the CollectionChanged event. |
![]() | OrderedDictionary | Represents a collection of key/value pairs that are accessible by the key or index. |
![]() | StringCollection | Represents a collection of strings. |
![]() | StringDictionary | Implements a hash table with the key and the value strongly typed to be strings rather than objects. |
![]() | StringEnumerator | Supports a simple iteration over a StringCollection. |
| Structure | Description | |
|---|---|---|
![]() | BitVector32 | Provides a simple structure that stores Boolean values and small integers in 32 bits of memory. |
![]() | BitVector32.Section | Represents a section of the vector that can contain an integer number. |
| Interface | Description | |
|---|---|---|
![]() | INotifyCollectionChanged | Notifies listeners of dynamic changes, such as when an item is added and removed or the whole list is cleared. |
![]() | IOrderedDictionary | Represents an indexed collection of key/value pairs. |
| Delegate | Description | |
|---|---|---|
![]() | NotifyCollectionChangedEventHandler | Represents the method that handles the CollectionChanged event. |
| Enumeration | Description | |
|---|---|---|
![]() | NotifyCollectionChangedAction | Describes the action that caused a CollectionChanged event. |
Specialized collections are collections with highly specific purposes. NameValueCollection is based on NameObjectCollectionBase; however, NameValueCollection accepts multiple values per key, whereas NameObjectCollectionBase accepts only one value per key.
Some strongly typed collections in the System.Collections.Specialized namespace are StringCollection and StringDictionary, both of which contain values that are exclusively strings.
The CollectionsUtil class creates instances of case-insensitive collections.
Some collections transform. For example, the HybridDictionary class starts as a ListDictionary and becomes a Hashtable when it becomes large. The KeyedCollection<'TKey, 'TItem> is a list but it also creates a lookup dictionary when the number of elements reaches a specified threshold.




