2016-09-21 110 views
-1

找孩子,我有2个班继承类

public class A 
{ 
    public string prop1 { get; set; } 
    public string prop2 { get; set; } 
    public string prop3 { get; set; } 
} 

public class B : A 
{ 
    public string prop4 { get; set; } 
} 

我有一种方法来填充列表与B类型。

问题:什么是得到的结果为List<A>

List<B> BList = new List<B>(); 
BList = GetData(); //fill List with Data 
List<A> AList = (List<A>)BList; // convert? cast? 

A最简单的方法有B类的各个领域因此必须有一个简单的方法来摆脱BA

+0

重复的链接是不是继承 – c0rd

+0

第一个答案是。 –

+1

既然你有一个'List'在这里,你也可以使用Linq投影'List AList = BList.Select(b =>(A)b).ToList();' – 2016-09-21 06:27:30

回答

1

你将不得不从BList创建一个新的List<A>实例与所有项目的引用:

List<A> AList = new List<A>(BList); 

这是因为List<T>不是协变(也不可能是)。

+0

谢谢你的回答。 – c0rd