Сортировка словаря по значению - PullRequest
7 голосов
/ 20 апреля 2010

У меня есть словарь в виде:

{ "honda" : 4, "toyota": 7, "ford" : 3, "chevy": 10 }

Я хочу отсортировать по второму столбцу (значение) по убыванию.

Желаемый вывод:

"шеви", 10

"Тойота", 7

"Хонда", 4

"Форд", 3

Ответы [ 2 ]

4 голосов
/ 20 апреля 2010

Благодаря caryden от: Как вы сортируете словарь по значению?

Dim sortedDict = (From entry In dict Order By entry.Value Descending Select entry)

Проблемы, о которых говорилось выше, были вызваны неправильным циклом.

0 голосов
/ 20 апреля 2010

На самом деле, если это HashTable, он не может быть отсортирован. С другой стороны, если у вас есть ArrayList или любая другая коллекция, которую можно отсортировать, вы можете реализовать собственный IComparer.

  public class MyDicComparer : IComparer
  {
    public int Compare(Object x, Object y)
    {
      int Num1= ((Dictionary)x).Value;   // or whatever
      int Num2= ((Dictionary)y).Value;

      if (Num1 < Num2) return 1;
      if (Nun1 > Num2) return -1;
      return 0;  // Equals, must be consideres
    }

ArrayList AL;
...
AL.Sort(MyDicComparer);  

НТН

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...