示例#1
0
        /// <summary>
        /// Add element in the set
        /// </summary>
        /// <param name="value">value you want to add</param>
        /// <returns>if value added return true, otherwise return false</returns>
        public bool Add(T value)
        {
            List <KeyValuePairSet <T> > freeSlot = FindSlot(value, true);

            for (int i = 0; i < freeSlot.Count; i++)
            {
                KeyValuePairSet <T> entry = freeSlot[i];
                if (entry.Value.Equals(value))
                {
                    return(false);
                }
            }
            freeSlot.Add(new KeyValuePairSet <T>(value));
            this.size++;
            return(true);
        }
示例#2
0
        /// <summary>
        /// Remove any specific element from the set
        /// </summary>
        /// <param name="value">element you want to remove</param>
        /// <returns>Return true if element removed, otherwise false</returns>
        public bool Remove(T value)
        {
            List <KeyValuePairSet <T> > slot = FindSlot(value, false);

            for (int i = 0; i < slot.Count; i++)
            {
                KeyValuePairSet <T> entry = slot[i];
                if (entry.Value.Equals(value))
                {
                    slot.RemoveAt(i);
                    this.size--;
                    return(true);
                }
            }
            return(false);
        }