public KeyValueElement this[int index] { get { return (KeyValueElement)BaseGet(index); } set { if (BaseGet(index) != null) { BaseRemoveAt(index); } BaseAdd(index, value); } }