public override bool Equals(Object anObject) { if (IsZero) { if (anObject is IMoney) { return(((IMoney)anObject).IsZero); } } if (anObject is MoneyBag) { MoneyBag aMoneyBag = (MoneyBag)anObject; if (aMoneyBag.fMonies.Count != fMonies.Count) { return(false); } foreach (Money m in fMonies) { if (!aMoneyBag.Contains(m)) { return(false); } } return(true); } return(false); }