protected void CopyDataTo(NamedObjectList <T> oOtherList)
 {
     foreach (var item in this)
     {
         oOtherList.Add((T)item);
     }
 }
        public virtual object Clone()
        {
            NamedObjectList <T> newList = new NamedObjectList <T>();

            CopyDataTo(newList);

            return(newList);
        }