Пример #1
0
    //Ensure that OrderBy returns the right type.
    //There are other variants of OrderBy extension methods you'll have to short-circuit
    public MyOrderedEnumerable <T> OrderBy <TKey>(Func <T, TKey> keySelector)
    {
        Console.WriteLine("Ordering");
        var newSorted = new MyOrderedEnumerable <T>(Original);

        newSorted.Sorted = (Sorted != null ? Sorted : Original).OrderBy(keySelector);
        return(newSorted);
    }
Пример #2
0
    public IOrderedEnumerable <T> CreateOrderedEnumerable <TKey>(
        Func <T, TKey> keySelector,
        IComparer <TKey> comparer,
        bool descending)
    {
        var newSorted = new MyOrderedEnumerable <T>(Original);

        newSorted.ApplyOrder(keySelector, comparer, descending);
        return(newSorted);
    }
Пример #3
0
 public static void Test()
 {
     var nums  = new MyOrderedEnumerable <int>(Enumerable.Range(0, 10).ToList());
     var nums2 = nums.OrderBy(x => - x);
     var z     = nums.Count() + nums2.Count();
 }