public static IOrderedEnumerable <T> AndThen <T, TOrderBy>(this IOrderedEnumerable <T> original, Func <T, TOrderBy> selector) where TOrderBy : IComparable <TOrderBy> { IComparer <T> comparer = new SimpleComparer <T, TOrderBy>(selector); return(original.CreateSubOrder(comparer)); }