public static ISorterEnumerable <TElement> ThenByDescending <TElement, TKey>(this ISorterEnumerable <TElement> source, Func <TElement, TKey> keySelector, IComparer <TKey> comparer)
        {
            var sourceComparer = source.Comparer;

            var nextComparer = new SorterComparer <TElement, TKey>(comparer, keySelector, true);

            sourceComparer.Next = nextComparer;

            return(source);
        }
 public static ISorterEnumerable <TElement> ThenByDescending <TElement, TKey>(this ISorterEnumerable <TElement> source, Func <TElement, TKey> keySelector)
 {
     return(ThenByDescending(source, keySelector, Comparer <TKey> .Default));
 }