Arrays 布尔值字典数组的搜索

Arrays 布尔值字典数组的搜索,arrays,dictionary,vb6,Arrays,Dictionary,Vb6,我有这样的结构 Private wells() As Dictionary 我需要知道每个字典中存在的键“active”是否至少有一次设置为true 有没有办法不循环地归档它?差不多 dim hasActive as boolean hasActive = wells()["active"] = true 现在我正在循环,但这个应用程序是15年前编写的,并且有更多的记录和更多的字典键添加到每个记录中,所以循环开始花费比等待更长的时间 谢谢简短回答:不 听起来你真的应该考虑另一种数据结构,甚至

我有这样的结构

Private wells() As Dictionary
我需要知道每个字典中存在的键“active”是否至少有一次设置为true

有没有办法不循环地归档它?差不多

dim hasActive as boolean
hasActive = wells()["active"] = true
现在我正在循环,但这个应用程序是15年前编写的,并且有更多的记录和更多的字典键添加到每个记录中,所以循环开始花费比等待更长的时间

谢谢

简短回答:不

听起来你真的应该考虑另一种数据结构,甚至是一个数据库。简单的单键/值对技术(如Dictionary)有其局限性。“字典数组”一开始就感觉很奇怪


制作的ADO记录集是一个方便的“超级集合”对象,可以有多个值/列,您可以通过“优化”动态属性索引需要频繁用作键的字段。

您不能直接这样做,但您可以轻松编写一个类模块来包装您的字典数组,并提供允许您操作这些项的方法。然后,包含类还可以跟踪条目“active”为True的字典计数。这些方法将在“活动”项设置为True时增加计数,在活动项设置为False时减少计数。然后,您可以检查计数,以了解当前是否有任何字典的“活动”项设置为True

实例化类_Initialize中的数组和字典,并将计数设置为零。提供用于添加和删除项的方法(以及您可能需要的任何其他方法),并提供一个属性来告诉您是否有任何字典将其“活动”项设置为True


当然,这意味着您必须更改项目中的所有代码才能使用类,而不是直接访问数组和字典。不过,我不认为这有那么难。

听起来很公平,我发现从只包含不同结果的数据库中获取额外的字典并执行此操作会更容易。但若我能从头开始设计它,我会使用断开连接或制造的记录集,而不是字典数组。谢谢