Scripting.Dictionary 对象
作者:CNLei 来源:CNLei.blog 时间:2007-10-13 09:46:00
许多 Microsoft 的编程语言,如 Visual Basic、VBScript 和 Jscript,都提供集合(collection)。可以把集合想象为数组,可以使用其中内建的函数完成存储和操纵数据等基本任务。无须担心数据是在哪些行列,而是使用唯一的键进行访问。
VBScript 和 Jscript 都提供类似的对象,通称 Scripting.Dictionary 对象或 Dictionary 对象。它类似于二维数组,把键和相关条目的数据存放在一起。然而真正的面向对象的方法,不应直接访问数据条目,必须使用 Dictionary 对象支持的方法和属性来实现。
创建和使用 Dictionary 对象
创建一个 Dictionary 对象的示例如下:
’In VBScript:
Dim objMyData
Set objMyData = Server.CreateObject("Scripting.Dictionary")
//In Jscript:
var objMyData = Server.CreateObject(’Scripting.Dictionary’);
<!-- Server-Side with an OBJECT element -->
<OBJECT RUNAT="SERVER" SCOPE="PAGE" ID="objMyData" PROGID="Scripting.Dictionary"></OBJECT>
Dictionary 对象还可用于客户端的 IE 中。
Dictionary 对象的成员概要
表1和表2列出了 Dictionary 对象的属性和方法及相应的说明。
当增加一个键/条目对时,如果该键已存在;或者删除一个键/条目对时,该关键字/条目对不存在,或改变已包含数据的 Dictionary 对象的 CompareMode,都将产生错误。
属性 | 说明 |
---|---|
CompareMode | 设定或返回键的字符串比较模式(仅用于 VBScript) |
Count | 只读。返回 Dictionary 里的键/条目对的数量 |
Item(key) | 设定或返回指定的键的条目值 |
Key(key) | 设定键值 |
方法 | 说明 |
---|---|
Add(key,item) | 增加键/条目对到 Dictionary |
Exists(key) | 如果指定的键存在,返回 True,否则返回 False |
Items() | 返回一个包含 Dictionary 对象中所有条目的数组 |
Keys() | 返回一个包含 Dictionary 对象中所有键的数组 |
Remove(key) | 删除一个指定的键/条目对 |
RemoveAll() | 删除全部键/条目对 |
对 Dictionary 中增加和删除条目
一旦得到一个新的(空的)Dictionary,可以对其添加条目,从中获取条目以及删除条目:
'In VBScript:
objMyData.Add "MyKey", "MyItem" 'Add Value MyItem with key MyKey
objMyData.Add "YourKey", "YourItem" 'Add value YourItem with key YourKey
blnIsThere = objMyData.Exists("MyKey") 'Returns True because the item exists
strItem = objMyData.Item("YourKey") 'Retrieve value of YourKey
strItem = objMyData.Remove("MyKey") 'Retrieve and remove YourKey
objMyData.RemoveAll 'Remove all the items// In JScript;
objMyData.Add ('MyKey', 'MyItem'); //Add Value MyItem with key MyKey
objMyData.Add ('YourKey', 'YourItem'); //Add value YourItem with key YourKey
var blnIsThere = objMyData.Exists('MyKey'); //Returns True because the item exists
var strItem = objMyData.Item('YourKey'); //Retrieve value of YourKey
var strItem = objMyData.Remove('MyKey'); //Retrieve and remove YourKey
objMyData.RemoveAll(); //Remove all the items