伙计们,我不知道我是不是错过了任何重要的OOP概念,如果我错过了什么,请指导我。我有一个基类和一些继承的类如下所示
Class Shape {}
Class Arc:Shape{}
Class Line:Shape{}现在,我想用所有生成的形状创建一个容器(列表),然后当我读回时,我会将对象强制转换成特定的类型。做it.Is泛型的最好方法是什么,这是我在下面展示的唯一方法。请帮帮忙
SortedList shapeList;
public int addShapes(Shape item) {shapeList.Add(ItemID, item);}发布于 2014-04-02 06:13:54
可以将所有Shape实例放入List<Shape>中
var list = new List<Shape>();
list.Add(new Arc());
list.Add(new Line());
list.Add(new Arc());
list.Add(new Arc());
list.Add(new Line());要获取所有Arc实例,您可以这样做:
var arcs = list.OfType<Arc>();同样,对于所有Line实例:
var lines = list.OfType<Line>();发布于 2014-04-02 06:24:12
将对象添加到List<Shape>中
var list = new List<Shape>();
list.Add(new Arc());
list.add(new Line());
list.Add(new Arc());然后使用LINQ查询原始列表并检索对象:
var arcList = list.Where(x => x.GetType() == typeof(Arc)).ToList();https://stackoverflow.com/questions/22802679
复制相似问题