Use Collection<T> for overriding if you need your own custom list. Use
List<T> otherwise.
Additionally, in public interfaces, don't expose concrete types, use
IList<T>, ICollection<T> or IEnumerable<T>, depending on what you want to
make available to clients.