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);
        }
Exemple #2
0
        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);
        }