我确定我缺少一些简单的东西,但是我试图将所有实现接口的对象的强类型列表转换为该接口类型的列表。如何将通用列表<T>转换为基于接口的列表<T>
下面是证明错误示例:
public void ExampleCode(){
List<Cube> cubes = new List<Cube>();
List<Shape> allShapes;
allShapes = cubes;//Syntax Error
allShapes = (List<Shape>)cubes;//Syntax Error
}
public class Cube : Shape
{
public int ID { get; set; }
public int Sides { get; set; }
}
public interface Shape
{
int ID { get; set; }
int Sides { get; set; }
}
NB:在讨论的代码被表述为一个铸件(同一物体的不同即视图)。下面给出的不同解决方法复制列表 - 创建一个新列表,并将每个Shape元素添加到新列表中 - 给出不同的对象,而不是同一对象上的不同视图。 – 2010-02-16 11:39:43