The following code gives me this error:
Cannot convert from \'System.Collections.Generic.List\' to \'System.Collections.Generic.List\'.
It's because a list of a class is not convertible to a list of the base class. It's a deliberate decision to make the language safe. This question gets asked often.
Here is my standard answer of how to work around the issue:
List listOfA = new List().ConvertAll(x => (A)x);
or:
List listOfA = new List().Cast().ToList();
Also here is really good explanation from Eric Lippert himself, one of the chief architects on the C# team.