【问题标题】:Dictionary in VBScript How key is recognized by dictionary object in VBSCriptVBScript中的字典VBSCript中的字典对象如何识别键
【发布时间】:2014-02-28 06:18:48
【问题描述】:

VBSCript 中的字典对象如何识别键,我的意思是说它认为“ABC”和“BCA”是同一个键...?? 意味着我正在尝试这个它给我一个错误,这个密钥已经存在所以任何人都可以请提供一些关于它的细节。

【问题讨论】:

  • 只要我们看不到您尝试过的内容,就不是很有趣。请发布一个不起作用的简单示例。
  • 来自文档。 Dictionary 对象相当于 PERL 关联数组。项目可以是任何形式的数据,并存储在数组中。每个项目都与一个唯一的键相关联。键用于检索单个项目,通常是整数或字符串,但可以是数组以外的任何内容。 BCA 和 ABC 不会是同一个键。如果有疑问,请打印出您的钥匙。返回包含 Dictionary 对象中所有现有键的数组。 object.Keys( ) 所以一个 for 循环 msgboxing 你的键。
  • 你在那个字典键上有手表吗?这会立即创建密钥,当您尝试添加它时,它会被视为存在。 “ABC”和“BCA”当然不一样。 (在这一部分中,我声明整数 42 和字符串 "42" 被视为相同,这是不正确的。请参阅下面 @Ekkehard.Horner 的帖子)键在标量上是唯一的值(因此 42 与“42”不同)或它们的对象引用(是的!您可以将对象用作键!)。

标签: vbscript


【解决方案1】:

不是答案,但我需要格式化以指出 VBScript 的字典/争议 AutomatedChaos 声明的特殊性。 Scripting.Dictionary 接受所有简单/标量数据类型甚至对象的键。所以有两个键 42 和 "42" 没问题:

>> set dic = CreateObject("Scripting.Dictionary")
>> dic.Add "42", 1
>> dic.Add 42, 2
>>
>> WScript.Echo Join(dic.Keys)
>>
42 42

【讨论】:

  • 你说的太对了,我怎么会误入歧途?
【解决方案2】:

dictionary.key 是 Dictionary 对象下存储项的指示符。

Microsoft Dictionary.Key Example:

'Dictionary.Item("{key}") returns the item information.
'Dictionary.Key("{oldkey}") = "{newkey}" stores a new key for a Dictionary entry. 
Function DictDemo
   Dim d   ' Create some variables.
   Set d = CreateObject("Scripting.Dictionary")
   d.Add "a", "Athens"   ' Add some keys and items, "a" = key, "Athens" = item
   d.Add "b", "Belgrade"
   d.Add "c", "Cairo"
   d.Key("c") = "d"   ' Set key for "c" to "d".
   DictDemo = d.Item("d")   ' Return associate item.
End Function

How to discover which keys you have populated

Function DictDemo
   Dim a, d, i   ' Create some variables.
   Set d = CreateObject("Scripting.Dictionary")
   d.Add "a", "Athens"   ' Add some keys and items.
   d.Add "b", "Belgrade"
   d.Add "c", "Cairo"

   a = d.Keys   ' Get the keys.

   For i = 0 To d.Count -1 ' Iterate the array.
      s = s & a(i) & "<BR>" ' Return results.
   Next
   DictDemo = s
End Function

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-17
    • 2012-09-11
    相关资源
    最近更新 更多