The Stack class represents a Last-in- First –Out (LIFO) stack of objects.
The SortedList offer more flexibility by allowing access to the variables either through the associated keys or through the indexes.
Hashtable optimizes lookups with the help of keys.
The ArrayList class can store heterogeneous collections of objects unlike array which store homogeneous collection of data.
Collection is an enhancement of array. If you want to create and manage a groups of related objects, use collection.
A collection — sometimes called a container — is simply an object that groups multiple elements into a single unit. Collections are used to store, retrieve, manipulate, and communicate aggregate data.