Generics allows the re-use of code by writing algorithms that can be used on multiple types.
Chapter 12 of CLR via C-Sharp, 4th Edition explains generics.