ぼくのかんがえたSortedList

SortedList<TKey, TValueIList<T>インターフェースを実装せず、SortedDictionary<TKey, TValue>との違いがよくわからんかったので、List<T>のSorted版を作ってみた。
ObservableCollection<T>を使っても良かったけど一応基本のみで。

public class SortedList<T> : Collection<T>
{
    private Comparison<T> comparision;

    /// <summary>
    /// SortedList&lt;T&gt;を初期化する
    /// </summary>
    /// <exception cref="NotImplementedException">TがIComparableまたはIComparable&lt;T&gt;を実装していない場合に発生</exception>
    public SortedList()
        : base(new List<T>())
    {
        //IComparable<T>が実装されている場合、その比較メソッドを利用
        if (ExistInterface<IComparable<T>>())
        {
            this.comparision = (v1, v2) => ((IComparable<T>)v1).CompareTo(v2);
        }
        //IComparableが実装されている場合、その比較メソッドを利用
        else if (ExistInterface<IComparable>())
        {
            this.comparision = (v1, v2) => ((IComparable)v1).CompareTo(v2);
        }
        //どちらも実装されていない場合、比較できないのでデリゲータ指定コンストラクタの利用を指示
        else
        {
            throw new NotImplementedException("IComparable<T> and IComparable is not implemented in " + typeof(T).Name + ". Use SortedList(Comparison<T>) constructor.");
        }
    }

    /// <summary>
    /// SortedList&lt;T&gt;を初期化する
    /// </summary>
    /// <param name="comparision">ソートに利用するデリゲートメソッド</param>
    public SortedList(Comparison<T> comparision)
        : base(new List<T>())
    {
        this.comparision = comparision;
    }

    protected override void InsertItem(int index, T item)
    {
        base.InsertItem(index, item);
        Sort();
    }

    protected override void SetItem(int index, T item)
    {
        base.SetItem(index, item);
        Sort();
    }

    private void Sort()
    {
        ((List<T>)Items).Sort(comparision);
    }

    /// <summary>
    /// Tに指定したインターフェースが実装されているかを調べる
    /// </summary>
    /// <typeparam name="TInterface"></typeparam>
    /// <returns></returns>
    private bool ExistInterface<TInterface>()
    {
        return Array.Exists(typeof(T).GetInterfaces(), (t) => t == typeof(TInterface));
    }
}

処理速度? 知らねー。