Performs a subsequent ordering of the elements in that sequence in descending order, using the values as keys.

// "mango", "grape", "apple",
// "orange", "banana",
// "raspberry", "blueberry",
// "passionfruit"
Enumerable.create("grape", "passionfruit", "banana", "mango", 
                  "orange", "raspberry", "apple", "blueberry")
          .orderBy('x => x.length')
          .thenDescending();

With comparer

// "apple", "grape", "mango",
// "banana", "orange",
// "blueberry", "raspberry",
// "passionfruit"
Enumerable.create("grape", "passionfruit", "banana", "mango", 
                  "orange", "raspberry", "apple", "blueberry")
          .orderBy('x => x.length')
          .thenDescending(function(x, y) {
                      if (x < y) return 1;
  
  										if (x > y) return -1;
  
                      return 0;
                  });