System.Collections

ArrayList Dynamically sized collection of objects in sequence
supports IList, ICollection, IEnumerable, and ICloneable

Hashtable collection of key/value pairs organized based on the hash code of the key.
supports IDictionary, ICollection, IEnumerable, and ICloneable

Queue
Represents a standard first-in, first-out (FIFO) queue.
supports ICollection, IEnumerable, and ICloneable

SortedList
Represents a collection of key/value pairs that are sorted by the keys and are accessible by key and by index.
supports IDictionary, ICollection, IEnumerable, and ICloneable

Stack
A last-in, first-out (LIFO) stack providing push and pop (and peek) functionality.
supports ICollection, IEnumerable, and ICloneable
ICollection
Defines general characteristics (e.g., size, enumeration, and thread safety) for all non-generic collection types.

ICloneable
Allows the implementing object to return a copy of itself to the caller.

IDictionary
Allows a non-generic collection object to represent its contents using key/value pairs.

IEnumerable
Returns an object implementing the IEnumerator interface (see next table entry).

IEnumerator
Enables foreach style iteration of collection items.

IList
Provides behavior to add, remove, and index items in a sequential list of objects.
ICollection<T>
Defines general characteristics (e.g., size, enumeration, and thread safety) for all generic collection types.

IComparer<T>
Defines a way to compare to objects.

IDictionary<TKey, TValue>
Allows a generic collection object to represent its contents using key/value pairs.

IEnumerable<T>
Returns the IEnumerator<T> interface for a given object.

IEnumerator<T>
Enables foreach-style iteration over a generic collection.

IList<T>
Provides behavior to add, remove, and index items in a sequential list of objects.

ISet<T>
Provides the base interface for the abstraction of sets.


Dictionary<TKey, TValue>
ICollection<T>, IDictionary<TKey, TValue>, IEnumerable<T>
This represents a generic collection of keys and values.

List<T>
ICollection<T>, IEnumerable<T>, IList<T>
This is a dynamically resizable sequential list of items.

LinkedList<T>
ICollection<T>, IEnumerable<T>
This represents a doubly linked list.

Queue<T>
ICollection (not a typo! This is the non-generic collection interface), IEnumerable<T>
This is a generic implementation of a first-in, first-out (FIFO) list.

SortedDictionary<TKey, TValue>
ICollection<T>, IDictionary<TKey, TValue>, IEnumerable<T>
This is a generic implementation of a sorted set of key/value pairs.

SortedSet<T>
ICollection<T>, IEnumerable<T>, ISet<T>
This represents a collection of objects that is maintained in sorted order with no duplication.

Stack<T>
ICollection (not a typo! This is the non-generic collection interface), IEnumerable<T>
This is a generic implementation of a last-in, first-out (LIFO) list.