我有一个列表1类型的对象复制列表中列出
public class ClassName1
{
public ClassName1()
{
}
public short Prop1 { get; set; }
public string Prop2 { get; set; }
}
和一个空的列表2类型的对象继承类型的具有附加属性的对象
public class ClassName2: ClassName1
{
public double Prop3;
}
我想通过做
IList<ClassName2> List2 = List1.Cast<ClassName2>().ToList();
到列表1到列表2中的内容复制,但我得到:
'InvalidCastException未处理。无法投射'Namespace.ClassName1'类型的对象以键入'Namespace.ClassName2'。
我在做什么错?
ClassName2从inherites ClassName1,而不是其他方式,所以您只能从2投射到1 –
您不能将父项转换为子项,反之亦然。并非每一只动物都是一只狗,但每只狗都是一只动物。或者,如果父母实际上是一个“隐藏”的孩子:“动物a =新狗()” –