0

我有一个对象数组列表,我想知道包含某个值的对象的数组列表中的索引,是否有内置方法来进行搜索?

我知道我可以简单地遍历数组列表以找到正确的值,例如:

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

4

3 回答 3

1

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

于 2009-07-28T16:34:05.943 回答
0

我不知道 .Net 1.1 是否有它,但您可以尝试在数组列表中使用.IndexOf方法。

于 2009-07-28T22:10:28.087 回答
0

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

于 2009-07-29T17:42:57.810 回答