Ответ 1
using System.Linq;
...
IOrderedEnumerable<KeyValuePair<TKey, TValue>> sortedCollection = myDictionary
.OrderByDescending(x => x.Value)
.ThenByDescending(x => x.Key);
Что делать, если я хочу сортировать словарь в С# с порядком, определяемым его ключом И его значением. Как нисходящий порядок по его значению и внутри тех, которые имеют одинаковое значение, спускаются по его ключу. Кажется вполне возможным сортировать только по ключу или только по значению, но оба они очень раздражают.
using System.Linq;
...
IOrderedEnumerable<KeyValuePair<TKey, TValue>> sortedCollection = myDictionary
.OrderByDescending(x => x.Value)
.ThenByDescending(x => x.Key);
Если вам нужна более сложная схема упорядочения, используйте IComparer > для использования в перегруженной версии OrderBy или OrderByDescending.