/// <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); }
/// <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); }