我有一個簡單的例程,用於根據無序對象集合中的name屬性來查找下一個對象。我瀏覽集合並收集所有名稱,並在List(of String)
中添加我的當前名稱爲>
的任何名稱,該名稱應列出當前密鑰之後的所有內容。然後,我使用List(of String)
上的默認.Sort()
方法對列表進行排序,並選取列表中的第一個項目,這應該是我的下一個項目。我做相反的事情找到前一個項目,添加我所有的項目<
我的當前名稱,排序,並採取列表中的最後一個項目。String.Sort和大於/小於運算符之間的區別VB.Net
但是,此方法會跳過一些項目。例如,我有一些名爲1210,1210-ADA和1210_ADA_DB的項目。使用此方法,獲取下一個項目將跳過中間項目1210-ADA並找到1210_ADA_DB,但找到上一個項目似乎可行。
如果我的過程是正確的,我唯一的解釋是<
和>
運算符與.Sort()
方法比較不同。這是真的?有什麼區別?
代碼尋找下一個項目:
Dim Key As String = Name
Dim NameList As New List(Of String)
For Each obj As T In Collection
Dim ObjKey As String = Obj.Key
If ObjKey > Key Then
NameList.Add(ObjKey)
End If
Next
If NameList.Count = 0 Then Return Nothing
NameList.Sort()
Dim NextKey As String = NameList.First
而不是*描述*你的代碼,你爲什麼不*發佈*你的代碼? –