我有一个对象层次结构:
MyObject
+Variable
+etc.
(所以 MyObject 是基类,Variable 是子类之一)。
我有特定类型的字典
private ConcurrentDictionary<string, Variable> variables
= new ConcurrentDictionary<string, Variable>();
等等
我想将所有各种列表放在一本高级词典中,在那里我可以找到所有特定列表:
private Dictionary<Type, ConcurrentDictionary<string, MyObject>> objects
= new Dictionary<Type, ConcurrentDictionary<string, MyObject>>();
但我无法将特定词典添加到高级词典:
objects.Add(typeof(Variable), variables); // DOES NOT COMPILE
有没有办法做我想做的事?我不想将变量列表定义为
private ConcurrentDictionary<string, MyObject> variables
= new ConcurrentDictionary<string, MyObject>(); // WORKS, BUT NOT NICE TO USE
所以我想使用特定的列表来执行特定于类型的操作,而且还可以通过“对象”字典对所有对象类型启用通用操作,这样我就不需要为每个子类型手动编写所有代码。
例如,我想定义一个这样的方法:
public List<Variable> GetVariables()
{
return variables.Values.ToList();
}
所以当我知道它们都是变量时,我可以使用变量对象。