public virtual ThreeDimensionalMap <K2, K3, K4, V> GetThreeDimensionalMap(K1 key1) { ThreeDimensionalMap <K2, K3, K4, V> m = map[key1]; if (m == null) { m = new ThreeDimensionalMap <K2, K3, K4, V>(); map[key1] = m; } return(m); }
public virtual ICollection <K3> ThirdKeySet() { ICollection <K3> keys = Generics.NewHashSet(); foreach (K1 k1 in map.Keys) { ThreeDimensionalMap <K2, K3, K4, V> m3 = map[k1]; foreach (K2 k2 in m3.FirstKeySet()) { Sharpen.Collections.AddAll(keys, m3.Get(k2).FirstKeySet()); } } return(keys); }
public virtual ICollection <K4> FourthKeySet() { ICollection <K4> keys = Generics.NewHashSet(); foreach (K1 k1 in map.Keys) { ThreeDimensionalMap <K2, K3, K4, V> m3 = map[k1]; foreach (K2 k2 in m3.FirstKeySet()) { TwoDimensionalMap <K3, K4, V> m2 = m3.Get(k2); foreach (K3 k3 in m2.FirstKeySet()) { Sharpen.Collections.AddAll(keys, m2.Get(k3).Keys); } } } return(keys); }
public virtual V Put(K1 key1, K2 key2, K3 key3, K4 key4, V value) { ThreeDimensionalMap <K2, K3, K4, V> m = GetThreeDimensionalMap(key1); return(m.Put(key2, key3, key4, value)); }