Sunday, May 20, 2018

C# : Generic Collection

ArrayList, BitArray, SortedListQueueStack and Hashtable. These types of collections can store any type of items. For example, ArrayList can store items of different data types:
Example: C# Collection

ArrayList arList = new ArrayList();

arList.Add(1);
arList.Add("Two");
arList.Add(true);
arList.Add(100.45);
arList.Add(DateTime.Now);

The limitation of these collections is that while retrieving items, you need to cast into the appropriate data type, otherwise the program will throw a runtime exception. It also affects on performance, because of boxing and unboxing.
To overcome this problem, C# includes generic collection classes in the System.Collections.Generic namespace.
The following are widely used generic collections:
Generic CollectionsDescription
List<T>Generic List<T> contains elements of specified type. It grows automatically as you add elements in it.
Dictionary<TKey,TValue>Dictionary<TKey,TValue> contains key-value pairs.
SortedList<TKey,TValue>SortedList stores key and value pairs. It automatically adds the elements in ascending order of key by default.
Hashset<T>Hashset<T> contains non-duplicate elements. It eliminates duplicate elements.
Queue<T>Queue<T> stores the values in FIFO style (First In First Out). It keeps the order in which the values were added. It provides an Enqueue() method to add values and a Dequeue() method to retrieve values from the collection.
Stack<T>Stack<T> stores the values as LIFO (Last In First Out). It provides a Push() method to add a value and Pop() & Peek() methods to retrieve values.
A generic collection gets all the benefit of generics. It doesn't need to do boxing and unboxing while storing or retrieving items and so performance is improved.

No comments:

Post a Comment