public bool Remove(T item, int quantity = 1) { if (quantity < 0) { throw new ArgumentOutOfRangeException("Quantity cannot be less than 0"); } else if (quantity == 0) { return(true); } if (itemDictionary.ContainsKey(item)) { QuantityItem <T> quantItem = itemDictionary[item]; quantItem.Quantity -= quantity; if (quantItem.Quantity < 1) { itemDictionary.Remove(item); base.Remove(quantItem); } return(true); } else { return(false); } }
public bool RemoveAll(T item) { if (itemDictionary.ContainsKey(item)) { QuantityItem <T> quantityItem = itemDictionary[item]; itemDictionary.Remove(item); base.Remove(quantityItem); return(true); } else { return(false); } }
public void Add(T item, int quantity = 1) { if (quantity < 0) { throw new ArgumentOutOfRangeException("Quantity cannot be less than 0"); } else if (quantity == 0) { return; } if (itemDictionary.ContainsKey(item)) { itemDictionary[item].Quantity += quantity; } else { QuantityItem <T> quantItem = new QuantityItem <T>(item, quantity); quantItem.QuantityChanged += quantityChanged; itemDictionary.Add(item, quantItem); base.Add(quantItem); } }