Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 按值对词典排序_Vb.net_Sorting_Dictionary - Fatal编程技术网

Vb.net 按值对词典排序

Vb.net 按值对词典排序,vb.net,sorting,dictionary,Vb.net,Sorting,Dictionary,我有一本字典,形式如下: { "honda" : 4, "toyota": 7, "ford" : 3, "chevy": 10 } 我想按第二列aka(值)降序排序 期望输出: “雪佛兰”,10 “丰田”,7 “本田”,4 “福特”,3 实际上,如果它是哈希表,它就不能被排序。 另一方面,如果您有一个ArrayList或任何其他可以排序的集合,那么您可以实现自己的IComparer public class MyDicComparer : IComparer { public

我有一本字典,形式如下:

{ "honda" : 4, "toyota": 7, "ford" : 3, "chevy": 10 }
我想按第二列aka(值)降序排序

期望输出:

“雪佛兰”,10

“丰田”,7

“本田”,4

“福特”,3


实际上,如果它是哈希表,它就不能被排序。 另一方面,如果您有一个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);  
公共类MyDicComparer:IComparer
{
公共整数比较(对象x、对象y)
{
int Num1=((字典)x).Value;//或其他
int Num2=((字典)y).Value;
如果(Num1Num2)返回-1;
返回0;//等于,必须考虑
}
ArrayList AL;
...
AL.Sort(MyDicComparer);
HTH

感谢caryden,来自:


上面报告的问题是由于不正确的循环。

在“implements IComparer”上获取错误:公共类MyDictComparer实现IComparer公共函数比较(ByVal x作为[Object],ByVal y作为[Object])作为整数Dim Num1作为DictionaryEntry=DirectCast(x,DictionaryEntry)Dim Num2 As DictionaryEntry=DirectCast(y,DictionaryEntry)如果CInt(Num1.Value)CInt(Num2.Value),则返回1 End然后返回-1 End如果返回0 End函数End ClassError消息:类“CountValueComparer”必须为接口“System.Collections.IComparer”实现“函数比较(x为对象,y为对象)为整数”。
Dim sortedDict = (From entry In dict Order By entry.Value Descending Select entry)