public class MultiKeyDictionary<T1, T2, T3> : Dictionary<T1, Dictionary<T2, T3>>
{
new public Dictionary<T2, T3> this[T1 key]
{
get
{
if (!ContainsKey(key))
Add(key, new Dictionary<T2, T3>());
Dictionary<T2, T3> returnObj;
TryGetValue(key, out returnObj);
return returnObj;
}
}
public bool ContainsKey(T1 key1, T2 key2)
{
Dictionary<T2, T3> returnObj;
TryGetValue(key1, out returnObj);
if (returnObj == null)
return false;
return returnObj.ContainsKey(key2);
}
}