//public IEnumerator<T> GetEnumerator()
 //{
 //    return new KeyedCollection<T>.Enumerator(this);
 //}
 public virtual T[] GetItems()
 {
     if (_items.Count <= 0)
     {
         return(new T[0]);
     }
     return(_items.GetItems());
 }
 public virtual void Sort()
 {
     _items.Sort(_keys.GetItems());
     _keys.Sort(_keys.GetItems());
     if (CollectionChanged != null)
     {
         CollectionChanged(this, new EventArgs());
     }
 }
 public virtual ReadOnlyCollection <T> Clone()
 {
     return(new ReadOnlyCollection <T>(_coll.GetItems()));
 }