我写了几节简单的课,让您做自己想做的事。您可能需要使用更多功能进行扩展,但这是一个很好的起点。
该代码的用法如下所示:
var map = new Map<int, string>();map.Add(42, "Hello");Console.WriteLine(map.Forward[42]);// Outputs "Hello"Console.WriteLine(map.Reverse["Hello"]);//Outputs 42
定义如下:
public class Map<T1, T2>{ private Dictionary<T1, T2> _forward = new Dictionary<T1, T2>(); private Dictionary<T2, T1> _reverse = new Dictionary<T2, T1>(); public Map() { this.Forward = new Indexer<T1, T2>(_forward); this.Reverse = new Indexer<T2, T1>(_reverse); } public class Indexer<T3, T4> { private Dictionary<T3, T4> _dictionary; public Indexer(Dictionary<T3, T4> dictionary) { _dictionary = dictionary; } public T4 this[T3 index] { get { return _dictionary[index]; } set { _dictionary[index] = value; } } } public void Add(T1 t1, T2 t2) { _forward.Add(t1, t2); _reverse.Add(t2, t1); } public Indexer<T1, T2> Forward { get; private set; } public Indexer<T2, T1> Reverse { get; private set; }}


