public void SortByKeys(Comparison <TKey> keyComparison)
        {
            var comparer = new Comparer2 <TItem>((x, y) => keyComparison(GetKeyForItem(x), GetKeyForItem(y)));

            Sort(comparer);
        }
        public void Sort(Comparison <TItem> comparison)
        {
            var newComparer = new Comparer2 <TItem>((x, y) => comparison(x, y));

            Sort(newComparer);
        }
        public void SortByKeys(IComparer <TKey> keyComparer)
        {
            var comparer = new Comparer2 <TItem>((x, y) => keyComparer.Compare(GetKeyForItem(x), GetKeyForItem(y)));

            Sort(comparer);
        }