我有一个对象的arraylist,我想知道包含某个值的对象的arraylist中的索引,是否有内置的方法来进行搜索?
我知道我可以简单地遍历arraylist以找到正确的值,例如:
ReportToFind="6"
For i = 0 To ReportObjList.Count - 1
If ReportObjList.Item(i).ReportCode = ReportToFind Then
ReportName.Text = ReportObjList.Item(i).ReportName ' found it - show name
Exit For
End If
Next
唯一的其他解决方案是将此代码替换为二进制搜索吗?
.Net 1.1
答案 0 :(得分:1)
在搜索列表是个问题的情况下,您需要使用更好的数据结构。如果列表是根据要搜索的值排序的,则可以对arraylist使用二进制搜索。在其他情况下,您最好使用更智能的数据结构,例如二叉树或地图。
答案 1 :(得分:0)
我不知道.Net 1.1是否有它,但您可以在阵列列表上尝试.IndexOf方法。
答案 2 :(得分:0)
除了项索引之外,您还需要通过reportCode索引reportObjectList。 您可以在第二个并行列表中执行此操作,其中reportCode作为索引,itemIndex作为值。