我有这样的结构
Private wells() As Dictionary
我需要知道每个字典中存在的键“活动”是否至少一次设置为真。
有没有办法在不循环的情况下存档它?就像是
dim hasActive as boolean
hasActive = wells()["active"] = true
现在我正在循环,但应用程序是 15 年前编写的,并且每个记录都添加了更多的记录和更多的字典键,因此循环开始花费的时间比等待的时间更长。
谢谢
我有这样的结构
Private wells() As Dictionary
我需要知道每个字典中存在的键“活动”是否至少一次设置为真。
有没有办法在不循环的情况下存档它?就像是
dim hasActive as boolean
hasActive = wells()["active"] = true
现在我正在循环,但应用程序是 15 年前编写的,并且每个记录都添加了更多的记录和更多的字典键,因此循环开始花费的时间比等待的时间更长。
谢谢
简短的回答:没有。
听起来你现在应该考虑另一种数据结构甚至数据库。像 Dictionary 这样简单的单键/值对技术有其局限性。“字典数组”刚开始就感觉很奇怪。
虚构的 ADO 记录集创建了一个方便的“超级集合”对象,该对象可以具有多个值/列,并且您可以通过“优化”动态属性索引需要频繁用作键的字段。
您不能直接执行此操作,但您可以轻松编写一个类模块来包装您的字典数组,并提供让您操作这些项目的方法。然后,包含类还可以跟踪项“活动”为 True 的字典计数。这些方法会在“活动”项设置为 True 时增加计数,并在活动项设置为 False 时减少计数。然后,您可以检查计数以了解当前是否有任何字典具有设置为 True 的“活动”项。
在 Class_Initialize 中实例化数组和字典,并将计数设置为零。提供添加和删除项目的方法(以及您可能需要的任何其他方法),以及告诉您是否有任何字典将其“活动”项目设置为 True 的属性。
当然,这确实意味着您必须更改项目中的所有代码才能使用您的类,而不是直接访问数组和字典。不过,我认为这不应该那么困难。