从继承类中获取子项

时间:2016-09-21 06:16:32

标签: c# class inheritance

我有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。

问题:将结果导入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的简便方法。

2 个答案:

答案 0 :(得分:2)

您可以使用Linq功能:

List<A> AList = BList.Cast<A>().ToList();

答案 1 :(得分:1)

您必须创建一个新的List<A>实例,其中包含对BList中所有项目的引用:

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

那是因为List<T>不是协变的(而且不可能)。