Derzeit habe ich ein Objekt, das die IComparable-Schnittstelle implementiert (ASP.NET 3.5, VB). Wenn ich mehrere instanziierte Objekte in eine Generics-Liste einfüge, sortiere ich sie, indem ich eine einfache someList.Sort
. Meine CompareTo()
Funktion ist diese:
Public Function CompareTo(ByVal obj As Object) As Integer Implements
System.IComparable.CompareTo
'default is number of votes (opposite direction, highest first)'
Dim sent As Sentence = CType(obj, Sentence)
Return Not Points.CompareTo(sent.Points)
End Function
Das funktioniert gut, aber jetzt muss ich nach einer anderen Eigenschaft sortieren, der DateSubmitted-Eigenschaft, als Teilmenge der Punkte. Zum Beispiel, wenn drei Sätze Stimmen haben: 3, 1, 1, möchte ich, dass der Satz mit den meisten Stimmen an erster Stelle steht (natürlich) und von den beiden Sätzen mit einer Stimme derjenige aufgelistet wird, der am frühesten eingereicht wurde.
Ist dies mit CompareTo() möglich, oder sollte ich einfach die Datenbank erneut aufrufen und sie dort sortieren?
感謝