public bool RemoveElement(EnumElem elem) { if (elem.ParentEnum != this) { return(false); } bool success = elements.Remove(elem); Debug.Assert(success); values.Remove(elem.Value); elem.ParentEnum = null; return(true); }
public bool AddElement(EnumElem elem) { if (values.Contains(elem.Value)) { return(false); } var success = elem.ParentEnum?.RemoveElement(elem); Debug.Assert(success != false); elem.ParentEnum = this; elements.Add(elem); values.Add(elem.Value); return(true); }