Summary
Generics are designed to reduce to once the number of times you implement code that only changes by data type. Because abstract data structures such as queues, stacks, and lists are so well known, it's understandable that generic classes for these exist. You can derive a lot of value from .NET by using existing generic classes like those found in the System.Collections.Generic namespace.
Over time, idioms such as generic will add greater and greater value as innovations like patterns and refactorings and new data structures can be converted into reusable elements of code like generics.