Before you start looking at the behavior of individual generic classes and interfaces, you need to take a step back and consider the higher-level factors that have influenced the shape and structure of the System.Collections.Generic and System.Collections.ObjectModel namespaces. If you're going to be able to take full advantage of these types, you really need to have a firm grasp on the role each class and interface plays in the overall scheme. If you can get a firm grasp on these concepts, you'll be much better equipped to determine how each of these generic types should be applied in your own solutions.
The section that follows explores the basic organization of the interfaces and types that are part of the BCL. Along the way, it will point out any broader concepts that might be of value to you as a consumer of these generic types.
If you are familiar with the System.Collections namespace, you should be able to see all the similarities between the generic types and their non-generic counterparts. In fact, in some cases, the generic versions of these types will have interfaces that closely mirror the non-generic versions. Even with these similarities, it's important for you to see how generics have influenced the overall mechanics and signatures of each type.
The best place to start your exploration of the generics namespace is with interfaces, because they define the signature of what will ultimately be possible with ...