The following code gives me this error:
Cannot convert from \'System.Collections.Generic.List\' to \'System.Collections.Generic.List\'.
.NET does not have co-variance and contra-variance (yet).
That B derives from A doesn't imply that List derives from List. It doesn't. They are two totally different types.
List
.NET 4.0 will get limited co-variance and contra-variance.