C# 从继承类中获取子级
我有两门课C# 从继承类中获取子级,c#,class,inheritance,C#,Class,Inheritance,我有两门课 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 BList=new List(
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 BList=new List();
BList=GetData()//用数据填充列表
列表列表=(列表)BList;//转换铸造
类
A
具有类B
的所有字段,因此必须有一种简单的方法从B
到A
,您必须创建一个新的列表
实例,引用BList
中的所有项目:
List<A> AList = new List<A>(BList);
List AList=新列表(BList);
这是因为
List
不是协变的(也不可能是协变的)。您可以使用Linq函数:
List<A> AList = BList.Cast<A>().ToList();
List AList=BList.Cast().ToList();
重复链接与继承无关。第一个答案是。因为这里有一个列表
,所以也可以使用Linq投影List AList=BList.Select(b=>(a)b).ToList()代码>谢谢你们两位的回答。
List<A> AList = BList.Cast<A>().ToList();