Vb.net 搜索对象的数组列表

Vb.net 搜索对象的数组列表,vb.net,arraylist,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)

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

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

我不知道.NET1.1是否有,但您可以在数组列表中尝试该方法

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

“更好的数据结构”-这里可能需要更好的示例?尽管如此,+1表示方向。除非明确的问题陈述,否则不可能给出一个明确的答案。不同的数据结构有不同的优点和缺点,因此,开发人员/设计师需要精通基本数据结构,才能确定哪种工具最适合这项工作。