Попробуйте:
sets.Sort((setA, setB) => setB.Count.CompareTo(setA.Count));
При этом используется перегрузка Sort(Comparison<T> comparison)
List<T>.Sort
.Тот факт, что выражение сравнивает B с A, а не A с B, - это то, что создает требуемый порядок убывания по количеству.
Причина, по которой ваш код не работает, заключается в том, что List<T>.Sort
, в отличие от Enumerable.OrderByDescending
, не имеет перегрузки, которая принимает Func<TSource, TKey>
ключевой селектор.
@ Техника Дарина Димитрова по использованию OrderByDescending
тоже подойдет, но учтите, что это создаст отсортированный список неуместным ипереназначить имеющуюся у вас ссылку на исходный список на новый, отсортированный.