Convert List to List
The way to make this work is to iterate over the list and cast the elements. This can be done using ConvertAll: List<A> listOfA = new List<C>().ConvertAll(x => (A)x); You could also use Linq: List<A> listOfA = new List<C>().Cast<A>().ToList();