現在、IComparable インターフェイス (ASP.NET 3.5、VB) を実装するオブジェクトがあります。いくつかのインスタンス化されたオブジェクトを Generics リストに配置するときは、単純なsomeList.Sort
. 私のCompareTo()
機能はこれです:
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
これは正常に機能しますが、Point のサブセットとして DateSubmitted プロパティという別のプロパティで並べ替える必要がある場合を除きます。たとえば、3 つのセンテンスに投票がある場合: 3、1、1 の場合、(明らかに) 最も投票数の多いセンテンスを最初に表示し、1 票の 2 つのセンテンスのうち、最初に送信されたセンテンスをリストに表示します。
これは CompareTo() で可能ですか、それともデータベースに再度アクセスしてソートする必要がありますか?
ありがとう