Tit*_*tan 3 c# inheritance containers upcasting
我在这里工作,让我说我有:
class A
{}
class B : A
{}
List<B> myList;
Run Code Online (Sandbox Code Playgroud)
我想,在代码的一部分中投射此myList,List< A>,但是当我尝试时,我收到一个错误:
List<A> myUpcastedList = (List<A>)myList; //not working
Run Code Online (Sandbox Code Playgroud)
有可能做到吗?如果是的话,语法是什么?
List<B>无法投入List<A>.你必须创建新的List<A>并用源纪念品填充它.你可以使用LINQ to Objects:
var aList= bList.Cast<A>().ToList();
Run Code Online (Sandbox Code Playgroud)
您还应该阅读一些关于协方差和逆变的内容,例如Eric Lippert的博客
| 归档时间: |
|
| 查看次数: |
690 次 |
| 最近记录: |