我有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
的所有字段,因此必须有一种从B
到A
的简便方法。
答案 0 :(得分:2)
您可以使用Linq功能:
List<A> AList = BList.Cast<A>().ToList();
答案 1 :(得分:1)
您必须创建一个新的List<A>
实例,其中包含对BList
中所有项目的引用:
List<A> AList = new List<A>(BList);
那是因为List<T>
不是协变的(而且不可能)。