Pro*_*ste 2 c# generics polymorphism inheritance
public class A {}
public class B : A {}
Run Code Online (Sandbox Code Playgroud)
现在有什么最好的方法让这个工作
List<A> a;
List<B> b = new List<B>();
a = b; // throw Cannot convert List<B> to List<A>
Run Code Online (Sandbox Code Playgroud)
谢谢
该List<T>类型不支持协方差,这样你就可以不分配List<B>直接向List<A>但即使B本身是直接分配给A.您需要执行传递列表b,转换并将项目添加到列表a中.该ConvertAll方法是一种方便的方法:
List<B> b = new List<B>();
// ...
List<A> a = b.ConvertAll(x => (A)x);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
666 次 |
| 最近记录: |