Estoy seguro de que me falta algo simple, sin embargo, estoy tratando de convertir una lista fuertemente tipada de objetos que implementan una interfaz en una lista de ese tipo de interfaz .Cómo convertir una lista genérica <T> en una lista basada en interfaz <T>
A continuación se muestra un ejemplo para demostrar el error:
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: El código en la pregunta se formula como un molde (es decir, vista diferente del mismo objeto). Las diferentes soluciones dadas a continuación copian la lista: se crea una nueva lista y cada elemento de Forma se agrega a la nueva lista, dando un objeto diferente, no una vista diferente en el mismo objeto. –