public CloneableList <TValue> GetValues(TKey key, bool returnEmptySet = true) { CloneableList <TValue> toReturn = null; if (!base.TryGetValue(key, out toReturn) && returnEmptySet) { toReturn = new CloneableList <TValue>(); } return(toReturn); }
public CloneableList <TValue> Clone() // shallow copy! { CloneableList <TValue> clone = new CloneableList <TValue>(); foreach (TValue v in this) { clone.Add(v); } return(clone); }
public CloneableList <TValue> GetOrAdd(TKey key) { CloneableList <TValue> toReturn = null; if (!base.TryGetValue(key, out toReturn)) { toReturn = new CloneableList <TValue>(); base.Add(key, toReturn); } return(toReturn); }
public bool ContainsValue(TKey key, TValue value) { bool toReturn = false; CloneableList <TValue> values = null; if (this.TryGetValue(key, out values)) { toReturn = values.Contains(value); } return(toReturn); }
public void Add(TKey key, TValue value) { CloneableList <TValue> container = null; if (!this.TryGetValue(key, out container)) { container = new CloneableList <TValue>(); base.Add(key, container); } container.Add(value); }
public void Remove(TKey key, TValue value) { CloneableList <TValue> container = null; if (this.TryGetValue(key, out container)) { container.Remove(value); if (container.Count <= 0) { this.Remove(key); } } }
public CloneableList <TValue> GetAllValues() { CloneableList <TValue> toReturn = new CloneableList <TValue>(); foreach (List <TValue> values in this.Values) { foreach (TValue value in values) { toReturn.Add(value); } } return(toReturn); }