C# 嵌套字典的包装器
我有如下嵌套字典实现:C# 嵌套字典的包装器,c#,class,dictionary,wrapper,C#,Class,Dictionary,Wrapper,我有如下嵌套字典实现: Dictionary<class1, Dictionary<int, class2>> 是的,你可以: public class MyWrapper : Dictionary<class1, Dictionary<int, class2>> {} 或者,一个组合 var obj1 = new MyWrapper(); 您可以使用泛型包装器类,但我不会说这将执行代码的清晰性。此外,您还必须编写能够访问内部词典的方法 pu
Dictionary<class1, Dictionary<int, class2>>
是的,你可以:
public class MyWrapper : Dictionary<class1, Dictionary<int, class2>>
{}
或者,一个组合
var obj1 = new MyWrapper();
您可以使用泛型包装器类,但我不会说这将执行代码的清晰性。此外,您还必须编写能够访问内部词典的方法
public class MyWrapper<T1, T2, T3>
{
private IDictionary<T1, IDictionary<T2, T3>> dictionary;
public MyWrapper()
{
dictionary = new Dictionary<T1, IDictionary<T2, T3>>();
}
public static void Main(string[] args)
{
var myWrapper = new MyWrapper<int, string, bool>();
}
}
公共类MyWrapper
{
私人词典;
公共MyWrapper()
{
字典=新字典();
}
公共静态void Main(字符串[]args)
{
var myWrapper=新的myWrapper();
}
}
我曾经写过一个包装器,让我们看看,确实如此
您可以通过以下两个键访问元素:
字典[“key1”,“key2”]
如果您不想创建包装,可以在.cs文件的顶部创建别名
using MyWrapper =
System.Collections.Generic.Dictionary<Namespace.class1,
System.Collections.Generic.Dictionary<int, Namespace.class2>>;
使用MyWrapper=
System.Collections.Generic.Dictionary;
如果您正在与期望使用如此长类型的其他类(您无法控制)进行交互,这一点尤其有用。然后,您可以在文件中使用一个方便的名称,但它实际上是完整类型的别名
以下两种用途是等效的
MyWrapper w1 = new MyWrapper();
MyWrapper w2 = new Dictionary<class1, Dictionary<int, class2>>();
MyWrapper w1=新的MyWrapper();
MyW2=新字典();
优秀的类名/七年过去了,你现在给这个抽象取什么名字?
public class MyWrapper<T1, T2, T3>
{
private IDictionary<T1, IDictionary<T2, T3>> dictionary;
public MyWrapper()
{
dictionary = new Dictionary<T1, IDictionary<T2, T3>>();
}
public static void Main(string[] args)
{
var myWrapper = new MyWrapper<int, string, bool>();
}
}
using MyWrapper =
System.Collections.Generic.Dictionary<Namespace.class1,
System.Collections.Generic.Dictionary<int, Namespace.class2>>;
MyWrapper w1 = new MyWrapper();
MyWrapper w2 = new Dictionary<class1, Dictionary<int, class2>>();