In the previous chapter, we learned about collections in c#, which are useful for storing elements of different data types. The problem with collections is while retrieving elements, we need to perform typecasting (boxing and unboxing). It will affect application performance to solve this problem, c# introduced generic collections with System.Collections.Generic namespace.
In c#, generic collections are the strongly typed objects, and it will allow only the same data type elements to store. It doesn’t require any typecasting (boxing and unboxing) while storing and retrieving elements so that performance will be improved.
Following are the different types of generic collection classes provided by the System.Collections.Generic namespace.
|List||It is useful to represent a list of objects that can be accessed by an index.|
|Queue||It is useful to represent a FIFO (First In, First Out) collection of objects.|
|Stack||It is useful to represent a LIFO (Last In, First Out) collection of objects.|
|SortedList<K, V>||It is useful to represent a collection of key/value pairs that are sorted by a key.|
|Dictionary<K, V>||It is useful to represent a collection of key/value pairs organized based on the key.|
|HashSet||It is useful to store non-duplicate elements.|