The generic classdoes not have virtual methods for Add, Remove etc, as it was designed to be fast, not extensible.
for eg iList,iDictionary.Here it is treat like a contact because it is an interface where you have to implement other part.
But By exposing your collection class for e.g IList or some-such, you can still use the List as the actual backing-store.Here you can add remove,sort.
For eg
IDictionary<string, object> d = new Dictionary<string, object>();
Here IDictionary is the generic class and the Dictionary is the colelction class which implement the contract generic class IDictionary