public TValue this[TKeyA keyA, TKeyB keyB, TKeyC keyC] { get { var key = KeyTriple.Create(keyA, keyB, keyC); return(base.ContainsKey(key) ? base[key] : default(TValue)); } set { var key = KeyTriple.Create(keyA, keyB, keyC); if (!ContainsKey(key)) { base.Add(key, value); } this[key] = value; } }
public void Add(TKeyA keyA, TKeyB keyB, TKeyC keyC, TValue value) { base.Add(KeyTriple.Create(keyA, keyB, keyC), value);; }
public bool ContainsKey(TKeyA keyA, TKeyB keyB, TKeyC keyC) { var key = KeyTriple.Create(keyA, keyB, keyC); return(base.ContainsKey(key)); }