作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我确信我遗漏了一些简单的东西,但是我正在尝试将所有实现接口(interface)的对象的强类型列表转换为该接口(interface)类型的列表。
下面是演示错误的示例:
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; }
}
最佳答案
不要像那样转换,试试:
allShapes = cubes.Cast<Shape>().ToList();
为此,您需要 .NET 3.5。我相信 Cast 扩展方法可以在 System.Linq 中找到。
关于c# - 如何将泛型 List<T> 转换为基于接口(interface)的 List<T>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2272476/
我是一名优秀的程序员,十分优秀!