如果你的ArrayList是有序的,並且包含數字的字符串(如在您的文章中所示),然後下面的功能應該工作:
Private Function OKToInsertSorted(ByVal theArrayList As ArrayList, _
ByVal stringToInsert As String) As Boolean
With theArrayList
If CInt(stringToInsert) < CInt(.Item(.Count - 1)) Then Return False
If .Count <= 1 Then
If stringToInsert = "1" Then Return True Else Return False
End If
If .Item(.Count - 1).ToString = .Item(.Count - 2).ToString Then
Return True
Else
Return False
End If
End With
End Function
如果你的ArrayList是不是有序的,但仍然包含數字的字符串(假設你開始與數字「1」,)那麼下面的功能應該工作:
Private Function OKToInsertUNSorted(ByVal theArrayList As ArrayList, _
ByVal stringToInsert As String) As Boolean
If stringToInsert = "1" Then Return True
Dim stringToCheck As String = CStr(CInt(stringToInsert) - 1)
Dim qry = From stringItem In theArrayList _
Where stringItem.ToString = stringToCheck _
Group By stringItem Into _
stringCount = Count()
For Each result In qry
If result.stringCount >= 2 Then Return True
Next
Return False
End Function
我在第一個函數中放了很多驗證代碼,這些代碼是基於一些關於你在找什麼的假設,所以你的里程可能會有所不同。
數組是否總是排序?如果不是,在'[b,b,b,a,a]'上,你能插入另一個'b'嗎?當更好的結構存在時,爲什麼要使用數組列表(即通用列表,例如'List')。最後,你有單個數組還是多個? –
Kobi
2010-07-27 04:23:48