按值排序字典

s15*_*99d 7 vb.net sorting dictionary

我有一个字典:

{ "honda" : 4, "toyota": 7, "ford" : 3, "chevy": 10 }
Run Code Online (Sandbox Code Playgroud)

我想通过第二列aka(值)降序对其进行排序.

期望的输出:

"雪佛兰",10

"丰田",7

"本田",4

"福特",3

Dan*_*olz 0

其实如果是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);  
Run Code Online (Sandbox Code Playgroud)

华泰