Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Ke y wo rd s : d i ffe re n ce b e t we e n g e n e ri c co l l e ct i o n s a n d n o n - g e n e ri c co l l e ct i o n s ,
co l l e ct i o n s v s g e n e ri cs , a d v a n t a g e o f g e n e ri cs o v e r co l l e ct i o n s
G enerics provides the type safe code with re-usability like as algorithm. In algorithms such as sorting,
searching, comparing etc. you dont specify what data type(s) the algorithm operates on. The
algorithm can be operates with any types of data. In the same way Generics operate, you can provide
different data type to Generics. For example, a sorting algorithm can operates on integer type, decimal
type, string type, DateTime type etc.
In this article, I will demonstrate the advantage of Generics over Collections. Following are the main
advantage of Generics.
Suppose, you required to sort the integer and floating type numbers, then let's see how to do in
collections and generics.
http://www.dotnet-tricks.com/Tutorial/csharp/U08E301212-Difference-between-Generics-and-Collections-with-example.html 1/5
6/28/2014 Difference between Generics and Collections with example
2. {
3. //Sort array
4. //and return sorted array
5. return inputArray;
6. }
Here, T is short for Type and can be replaced with the Type defined in the C# language at runtime. So once
we have this method, we can call it with different data types as follows and can see the beauty of Generics.
In this way Generics provide code re-usability.
Now if you thinking you can make fool to the compiler by passing an integer array while it is asking for a
float, you are wrong. Compiler will shows the error at compile time like as:
Suppose, you want to make a list of students, then let's see how to do in collections and generics.
In collections we can use ArrayList to store a list of Student objects like as:
1. class Student
2. {
3. public int RollNo{get; set;}
4. public string Name{get; set;}
5. }
6.
7. //List of students
8. ArrayList studentList = new ArrayList();
9. Student objStudent = new Student();
http://www.dotnet-tricks.com/Tutorial/csharp/U08E301212-Difference-between-Generics-and-Collections-with-example.html 2/5
6/28/2014 Difference between Generics and Collections with example
Since ArrayList is a loosely typed collection and it never ensure compile-time type checking. Hence above
statement will compile without error but it will throw an InvalidCastException at run time when you try to
cast it to Student Type.
In generics we can use generic List to store a list of Student objects like as:
http://www.dotnet-tricks.com/Tutorial/csharp/U08E301212-Difference-between-Generics-and-Collections-with-example.html 3/5
6/28/2014 Difference between Generics and Collections with example
In case of collections you can make fool to compiler but in case of generics you can't make fool to compiler
as shown below. Hence Generics provide Type Safety.
Since compiler enforces type safety with Generics. Hence fetching data from Generics doesn't required type
casting which means your code is clean and easier to write and maintain.
As you have seen in above example, at the time of fetching the data from the ArrayList collection we need
to do type casting which cause performance degrades. But at the time of fetching the data from the
generic List we don't required to do type casting. In this way Generics provide better performance than
collections.
http://www.dotnet-tricks.com/Tutorial/csharp/U08E301212-Difference-between-Generics-and-Collections-with-example.html 4/5
6/28/2014 Difference between Generics and Collections with example
Print Article
Tw eet 11 12
Shailendra Chauhan works as Software Analyst at reputed MNC and has more than 5 years of hand
over Microsoft .NET technologies. He is a .NET Consultant and is the founder & chief editor of
www.dotnet-tricks.com and www.dotnetinterviewtricks.com blogs. He is an author of book ASP.NET
MVC Interview Questions and Answers.
He loves to work with web applications and mobile apps using Microsoft technology including ASP.NET,
MVC, C#, SQL Server, WCF, Web API, Entity Framework,Cloud Computing, Windows Azure, jQuery,
jQuery Mobile, Knockout.js, Angular.js and many more web technologies. More...
http://www.dotnet-tricks.com/Tutorial/csharp/U08E301212-Difference-between-Generics-and-Collections-with-example.html 5/5