本文介绍了转换列表<DerivedClass>列出&lt;BaseClass&gt;的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述 29岁程序员,3月因学历无情被辞! 虽然我们可以从基类/接口继承,为什么我们不能声明一个List使用相同的类/接口?While we can inherit from base class/interface, why can't we declare a List<>using same class/interface?interface A{ }class B : A{ }class C : B{ }class Test{ static void Main(string[] args) { A a = new C(); // OK List<A> listOfA = new List<C>(); // compiler Error }}有办法解决吗?推荐答案使这项工作的方法是迭代列表并转换元素.这可以使用 ConvertAll 来完成: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);您也可以使用 Linq:You could also use Linq:List<A> listOfA = new List<C>().Cast<A>().ToList(); 这篇关于转换列表<DerivedClass>列出&lt;BaseClass&gt;的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持! 上岸,阿里云!
08-01 15:46