我有一个对象列表,它存储了我所做的源搜索的搜索结果。在添加到列表中时,我会为该对象提供有关结果相关性的评分,以便我可以将这些结果推到顶部。IComparable没有正确排序对象
我的对象实现IComparable
接口,并有一个compareto函数,所有编译都正确,但是当我对列表(list.sort())进行排序时,这似乎对结果没有任何影响(较高的评分项目不在底部)
任何人都可以建议我做错了什么?
Public Class SearchFeedItem
Implements IComparable
Private _score As Integer = 0
Public Property Score() As Integer
Get
Return _score
End Get
Set(ByVal value As Integer)
_score = value
End Set
End Property
Public Function CompareTo(ByVal obj As Object) As Integer Implements System.IComparable.CompareTo
Dim OtherItem As SearchFeedItem = CType(obj, SearchFeedItem)
If Me.Score < OtherItem.Score Then
Return 1
End If
If Me.Score > OtherItem.Score Then
Return -1
Else
Return 0
End If
End Function
End Class
我已经实现如上述,但仍不能正确排序,新的代码:公共功能的CompareTo(BYVAL其他作为SearchFeedItem)作为整数器具System.IComparable(OF SearchFeedItem).CompareTo 如果Me.Score other.Score然后 返回-1 Else Return 0 End If End Function –
2012-07-20 11:55:04