public void AddMaskToList(IMask mask, string maskName) { string mName = maskName; foreach (MaskItem m in MaskCheckList.Items) { if (m.Name == mName) { //is there a difference in the two? if (mask.GetType() == m.mMask.GetType()) { m.mMask = mask.Clone(); return; } else { maskName += "1"; } } } //new MaskItem item = new MaskItem(); item.Name = maskName; item.mMask = mask; MaskCheckList.Items.Add(item, false); }