/* * Created by Daniel Hoelbling (http://www.tigraine.at) * Feel free to do anything you want with this class. */ using System.Collections; using System.Collections.Generic; using IEnumerator=System.Collections.IEnumerator; public class SortedKeylessCollection : ICollection where T : class { private readonly IComparer comparer; private readonly List list = new List(); public SortedKeylessCollection(IComparer comparer) { this.comparer = comparer; } public SortedKeylessCollection() : this(Comparer.Default) { } #region ICollection Members public void Add(T item) { list.Add(item); SortList(); } public void Clear() { list.Clear(); } public bool Contains(T item) { return list.Contains(item); } public void CopyTo(T[] array, int arrayIndex) { list.CopyTo(array, arrayIndex); } public bool Remove(T item) { bool b = list.Remove(item); if (b) SortList(); return b; } public int Count { get { return list.Count; } } public bool IsReadOnly { get { return false; } } public IEnumerator GetEnumerator() { return list.GetEnumerator(); } IEnumerator IEnumerable.GetEnumerator() { return list.GetEnumerator(); } #endregion public void SortList() { list.Sort(comparer); } }