搜索对象的arraylist

时间:2009-07-28 16:30:19

标签: vb.net arraylist

我有一个对象的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

3 个答案:

答案 0 :(得分:1)

在搜索列表是个问题的情况下,您需要使用更好的数据结构。如果列表是根据要搜索的值排序的,则可以对arraylist使用二进制搜索。在其他情况下,您最好使用更智能的数据结构,例如二叉树或地图。

答案 1 :(得分:0)

我不知道.Net 1.1是否有它,但您可以在阵列列表上尝试.IndexOf方法。

答案 2 :(得分:0)

除了项索引之外,您还需要通过reportCode索引reportObjectList。 您可以在第二个并行列表中执行此操作,其中reportCode作为索引,itemIndex作为值。