You can't cast List<Child> to List<Parent> directly, but you can cast List<Child> to IReadOnlyList<Parent>. Ex:
List<Child> childList = new List<Child>();
...
IReadOnlyList<Parent> parentList = childList;
This works because List<T> extends IReadOnlyList<out T>. Note T is covariant in the IReadOnlyList<out T> interface.