Сортировка элементов словаря с одинаковым значением - C#

Узнай цену своей работы

Формулировка задачи:

var nums = new Dictionary<string, int>();
nums.Add("4", 1);
nums.Add("7", 1);
nums.Add("32", 2);
nums.Add("8", 2);
nums.Add("12", 3);
nums.Add("22", 3);  
nums.Add("9", 4);
        
foreach(var item in nums.OrderByDescending(i => i.Key))
{
    Console.WriteLine(item);
}
Сейчас сортировка идет по убыванию. Я бы хотел отсортировать элементы у которых одинаковые value по возрастанию. Я думал сделать как-то так:
nums.OrderByDescending(i => i.Key).Where(/*Но не знаю что сюда вставить*/).OrderBy(i => i.Key);

Решение задачи: «Сортировка элементов словаря с одинаковым значением»

textual
Листинг программы
var order = nums
    .GroupBy(n => n.Value)
    .OrderBy(g => g.Key) // сортировка значений(в словаре) по возрастанию
    .SelectMany(g =>
        g.OrderByDescending(n => n.Key) // сортировка ключей по убыванию
    );
 
foreach (var item in order) /* ... */

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.769 из 5
Похожие ответы