public KeepOrderedEnumerable(IKeepEnumerable <TSource> source) { if (source == null) { throw new ArgumentNullException("source"); } _orders = new List <IOrderedParameters <TSource> >(source.Orders ?? Enumerable.Empty <IOrderedParameters <TSource> >()); }
private static IEnumerable <TSource> OrderBy <TSource>(this IEnumerable <TSource> source, IKeepEnumerable <TSource> keep , out Func <int[]> keepDenseRank) { foreach (IOrderedParameters <TSource> parameters in keep.Orders.Reverse()) { source = parameters.Sort(source); } keepDenseRank = source.GetKeepDenseRank(keep.Orders); return(source); }
public static IKeepOrderedEnumerable <TSource> OrderBy <TSource, TKey>(this IKeepEnumerable <TSource> source , Func <TSource, TKey> keySelector) { return(new KeepOrderedEnumerable <TSource>(source).Add(keySelector)); }
public static IKeepOrderedEnumerable <TSource> OrderByDescending <TSource, TKey>(this IKeepEnumerable <TSource> source , Func <TSource, TKey> keySelector, Func <TKey, TKey, int> comparer) { return(source.OrderByDescending(keySelector, new LambdaComparer <TKey>(comparer))); }
public static IKeepOrderedEnumerable <TSource> OrderByDescending <TSource, TKey>(this IKeepEnumerable <TSource> source , Func <TSource, TKey> keySelector, IComparer <TKey> comparer) { return(new KeepOrderedEnumerable <TSource>(source).Add(keySelector, comparer, true)); }