Чтобы создать List<BaseClass>
из List<DerivedClass>
, броска будет недостаточно, как отмечали другие ответы. Вам нужно построить новый список.
Я не особо доволен кодом, предложенным другими ответами, поэтому я предлагаю свое собственное решение. Я бы сделал это так:
var baseClassList = new List<BaseClass>(derivedClassList.Cast<BaseClass>());
Некоторые могут предпочесть это:
var baseClassList = derivedClassList.Cast<BaseClass>().ToList();
Я предпочитаю первый, потому что он позволяет легко изменить тип с List<T>
на любой другой набор с конструктором, который принимает IEnumerable<T>
.