我有一個列表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 =新狗()」 –