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

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

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

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

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

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

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


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

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

13   голосов , оценка 3.769 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы