【发布时间】:2016-08-24 05:50:07
【问题描述】:
我有很多 Lists 包含不同类型的对象,但所有这些类型都有一个公共基类 ModelBase。每个通用 List 类型都是唯一的,即不会有两个列表包含相同的类型。
最后,我想要一个像public List<TModel> GetModelList<TModel>() 这样的函数,它将从ModelBase 派生的任何对象的类型作为泛型类型或参数,然后返回该泛型类型的相应List<TModel>。
我有哪些选择来实现这一目标?
我考虑过Dictionary<Type, List<ModelBase>>,但后来我将子类类型(例如AreaModel)转换为基类类型ModelBase 用于存储,反之,当我再次获取它时。我不想每次在存储之前或加载之后都强制转换列表。有没有办法简化这个?也许我们可以自动转换,因为我们正在传递我们想要的 List 类型作为参数?
【问题讨论】:
标签: c# list generics dictionary collections