【发布时间】:2020-06-21 06:29:33
【问题描述】:
似乎这个问题的大部分答案都涉及 C#,所以我觉得问这个问题比较安全:
我需要通过它的值来调用字典键。我有一个包含四个字符键列表的字典对象。例如:
dSCAC.Add "AAAA", 1
dSCAC.Add "BBBB", 2
dSCAC.Add "CCCC", 3
dSCAC.Add "DDDD", 4
等等
当在字符串(在本例中为电子邮件主题行)中找到与键关联的值时,我已经能够调用它,然后从值中添加或删除 1。
例如:检测到 BBBB,值为 2。修改该值并调用相应的键。在这种情况下,最后我们希望 varOtherSCAC = AAAA。
If dSCAC(varSCAC) Mod 2 Then
Debug.Print "Odd " & "PAPS"
varOtherSCAC = (dSCAC(varSCAC) + 1)
Debug.Print "Opposite SCAC is " & varOtherSCAC
Else
Debug.Print "Even " & " PARS"
varOtherSCAC = (dSCAC(varSCAC) - 1)
Debug.Print "Opposite SCAC is " & varOtherSCAC
End if
我无法根据这个值计算出调用新键的语法。在VBA中甚至可能吗?有没有办法解决这个问题?
【问题讨论】:
-
这个的用例是什么?字典通常只确保 key 是唯一的 - 您是否需要键和值都是唯一的?如果没有,是否有规则规定如果有重复,您将返回哪个键?
-
我目前有一些小项目正在进行中,为了方便更新,我创建了字典作为我需要检查/验证的所有代码是否正确/存在于字符串中的中心位置。在这种情况下,当我发现一个合法代码时,我希望能够快速调用其关联的代码(然后可以将其添加到新字符串并打印)。如果 BBBB 在字符串中,我希望能够找到它的对应项;在这种情况下为 AAAA。每个键/值都必须是唯一的,是的。 AAAA 永远只有 1,BBBB 永远只有 2,等等。
-
唯一的键/值对与唯一的值并不是一回事。换个说法,只有一个 1,只有一个 2,等等。
-
是的,每个只有一个。