0

我有这样的结构

Private wells() As Dictionary

我需要知道每个字典中存在的键“活动”是否至少一次设置为真。

有没有办法在不循环的情况下存档它?就像是

dim hasActive as boolean
hasActive = wells()["active"] = true

现在我正在循环,但应用程序是 15 年前编写的,并且每个记录都添加了更多的记录和更多的字典键,因此循环开始花费的时间比等待的时间更长。

谢谢

4

2 回答 2

0

简短的回答:没有。

听起来你现在应该考虑另一种数据结构甚至数据库。像 Dictionary 这样简单的单键/值对技术有其局限性。“字典数组”刚开始就感觉很奇怪。

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

于 2013-01-03T22:32:47.840 回答
0

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

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

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

于 2013-01-04T21:10:47.203 回答