If you want to create a publicly exposed animal collection you should not inherit from List<T>
and instead inherit from Collection<T>
and use the postfix Collection
in the class name. Example: AnimalCollection : Collection<Animal>
.
This is supported by the framework design guidelines, more specifically:
DO NOT use
ArrayList
,List<T>
,
Hashtable
, orDictionary<K,V>
in
public APIs. UseCollection<T>
,
ReadOnlyCollection<T>
,
KeyedCollection<K,T>
, or
CollectionBase subtypes instead. Note
that the generic collections are only
supported in the Framework version 2.0
and above.