2010-04-19 15 views
6

Sortierung habe ich ein Wörterbuch in Form von:einen Wörterbuch von Wert

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

Ich will es auch bekannt als von der zweiten Spalte sortieren (der Wert) absteigend.

gewünschter Ausgang:

"chevy", 10

"Toyota", 7

"Honda", 4

"Ford", 3

Antwort

0

Eigentlich, wenn es HashTable ist, kann es nicht sortiert werden. Auf der anderen Seite, wenn Sie eine ArrayList oder eine andere Sammlung haben, die sortiert werden kann, können Sie Ihren eigenen IComparer implementieren.

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

+0

einen Fehler auf "implementiert IComparer": Public Class MyDictComparer Implementiert IComparer Public Function Vergleichen (ByVal x As [Objekt], ByVal y As [Objekt]) As Integer Dim Num1 Wie Dictionary = Direct (x, Dictionary) Dim Num2 Wie Dictionary = Direct (y, Dictionary) Wenn CInt (Num1.Value) CInt (Num2.Value) Dann Return -1 Ende Wenn Zurück 0 Ende Funktion Endeklasse – s15199d

+0

Fehlermeldung: Die Klasse 'CountValueComparer' muss 'Funktionsvergleich (x als Objekt, y als Objekt) als Integer' für die Schnittstelle 'System.Collections.IComparer' implementieren. – s15199d

Verwandte Themen