我確定我缺少一些簡單的東西,但是我試圖將所有實現接口的對象的強類型列表轉換爲該接口類型的列表。如何將通用列表<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