You can mix derived and base classes in a generic list in C# of type base class? I don't see why not...and I don't see a clear answer to this...but playing around today with a generic list of type base class, that also had in it derived classes, I did not see any problems. But I'm wondering if there could be potential problems, aside from the usual upcast/downcast limitations that are always inherent in derived/base classes. The reason I ask: I don't know if a generic list for C# works the same as what used to be called an ArrayList in C++, that is, whether you'll get any complaints during compilation for mixing 'types' like this (base vs derived classes). I ran numerous examples today without complaint but want to verify whether there's a potential for a problem.
C# class types are reference types. C++ class types would be called value types in the .NET world. The appropriate comparison would be a C++ list of base-class-pointers, in which you could store a pointer to a derived class without any problems.
So yes, it's fine.