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)
Dim sortedDict = (From entry In dict Order By entry.Value Descending Select entry)