在数组中搜索值

时间:2016-08-25 08:36:48

标签: vb.net

我有一个从表构建的数组,我需要在..

中搜索值
Private marrOutscomesStart(2, 100000)

    Dim i As Integer = 0

    If Not rstType.BOF And Not rstType.EOF Then
        While Not rstType.EOF
            If Not IsDBNull(rstType.Fields(0).Value) Then
                marrOutscomesStart(0, i) = rstType.Fields(0).Value
                marrOutscomesStart(1, i) = rstType.Fields(1).Value
                i = i + 1
            End If
            rstType.MoveNext()
        End While
    End If

数组中的数据将是这样的:

0 -- [Apple], [1], [Y]
1 -- [Apple], [2], [N]
2 -- [Apple], [3], [Y]
3 -- [Pear], [1], [Y]
4 -- [Pear], [2], [N]
5 -- [Banana], [1], [Y]

我想搜索第1列= Apple和第2列= 2并获取数组项的索引..我可以遍历数组但是有更快的方法来搜索2列值吗?

非常感谢,

德里克。

1 个答案:

答案 0 :(得分:0)

等一下,等一下。你是在告诉你是在提取整个数据库表来查找有趣的记录吗?我没有得到什么吗?它不提供某种SQL查询方式,如:

SELECT FRUIT, VALUE, THIRD_COLUMN FROM TABLE WHERE FRUIT='Apple' AND VALUE='1';

如果你真的需要手动扫描整个表格: - 如果你这样做一次,那么从上到下扫描就会很麻烦 - 如果您多次搜索不同的值,我建议(快速)对表格进行排序,然后使用二进制搜索。

编辑:

我不确定你想要实现什么,但首先将它存储在二维数组中是个坏主意。首先你应该创建带有Fruit和Number作为字段的类并实现IComparable - add方法将比较两个对象并按某种顺序排列。然后你可以使用Dictionary来为你做排序和寻找。