我有一个从表构建的数组,我需要在..
中搜索值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列值吗?
非常感谢,
德里克。
答案 0 :(得分:0)
等一下,等一下。你是在告诉你是在提取整个数据库表来查找有趣的记录吗?我没有得到什么吗?它不提供某种SQL查询方式,如:
SELECT FRUIT, VALUE, THIRD_COLUMN FROM TABLE WHERE FRUIT='Apple' AND VALUE='1';
如果你真的需要手动扫描整个表格: - 如果你这样做一次,那么从上到下扫描就会很麻烦 - 如果您多次搜索不同的值,我建议(快速)对表格进行排序,然后使用二进制搜索。
编辑:
我不确定你想要实现什么,但首先将它存储在二维数组中是个坏主意。首先你应该创建带有Fruit和Number作为字段的类并实现IComparable - add方法将比较两个对象并按某种顺序排列。然后你可以使用Dictionary来为你做排序和寻找。