У меня есть словарь в форме:
{ "honda" : 4, "toyota": 7, "ford" : 3, "chevy": 10 }
Я хочу отсортировать его по второму столбцу иначе (значение) убывание.
Желаемый вывод:
"охота", 10
"Тойота", 7
"Honda", 4
"брод", 3
На самом деле, если это 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);
HTH
Спасибо caryden от: Как вы сортируете словарь по значению?
Dim sortedDict = (From entry In dict Order By entry.Value Descending Select entry)
Проблемы, о которых говорилось выше, были вызваны неправильное зацикливание.