public void RemoveRange(ImpObservableCollection <T> range)
 {
     foreach (var item in range)
     {
         Remove(item);
     }
 }
        public object Clone()
        {
            var clone = new ImpObservableCollection <T>();

            foreach (var unknown in this)
            {
                var obj = (ICloneable)unknown;
                clone.Add((T)obj.Clone());
            }

            return(clone);
        }