asp dictionary对象使用介绍

作者:亮亮 来源:亮亮博客 时间:2008-05-30 13:51:00 

dictionary对象和数组有点相似,但无需用redim来改变dictionary的大小,dictionary也没有多维,dictionary比数组优秀的地方是比数组内建的方法多,操作比数组灵活些,在定位上和频繁访问上比数组效率高

首先建立dictionary对象

set dic=Server.CreateObject("Scripting.Dictionary")

下面是一些基本的用法示例

1.向 dictionary 对象添加新的键/值对

dic.Add "a","这是a"
dic.Add "aa","这是aa"
dic.item("a3")="增加a3"

2.返回dictionary 中某个键的值

response.Write(dic.item("aa")&"<br>")
response.Write(dic.item("a3")&"<br>")

3.为已有的键(key)设置新值

dic.item("aa")="aa的值变了"
response.Write(dic.item("aa")&"<br>")

4.返回在dictionary对象中键/值对的数目

response.Write(dic.count&"<br>")

5.返回在dictionary对象中是否存在指定的键(key)

response.Write(dic.Exists("a")&"<br>")

6.items返回dictionary对象中的所有值的一个数组

itemArr=dic.items
for i=0 to dic.Count-1
  Response.Write(itemArr(i)&"<br>")
next

7.keys方法返回dictionary对象中所有key的数组。

keyArr=dic.Keys
for i=0 to dic.Count-1
  Response.Write(keyArr(i)&"<br>")
next

8.设置键的比较模式

0 = vbBinaryCompare - 二进制比较
1 = vbTextCompare - 文本比较
2 = vbDatabaseCompare - 数据库比较

本来dic.Exists("A")返回false,但加上比较模式后将返回true

set dic=Server.CreateObject("Scripting.Dictionary")
dic.CompareMode=1
dic.Add "a","这是a"
dic.Add "aa","这是aa"
dic.item("a3")="增加a3"
response.Write(dic.Exists("A")&"<br>")

上面将打印出true

这样写也会报错 dic.Add "A","这是A"

9.删除指定的键/值对

dic.remove("aa")
dic.Exists("aa")将返回false
response.Write(dic.Exists("aa")&"<br>")

10.删除所有的键/值对

dic.removeall
response.Write(dic.Exists("a3")&"<br>")

最后当然就是释放对象

set dic=nothing

上面就是dictionary的一些基本用法,下面看看它的几个应用实例,下面的例子都是网上搜集到的,具体的作者不详!
先看这一个,代码如下:

str="海尔电脑.T618,联想电脑.GD88,TCL电脑.T720i,长虹电视.6610,TCL电脑.3300,长虹电视.M55,海尔电脑.T68ie,长虹电视.7650,长虹电视.7210,海尔电脑.P802,海尔电脑.T312"
response.Write(str&"<br />")
dim dic:Set dic = server.CreateObject("Scripting.Dictionary")
strArr=split(str,",")
for each strAtt in strArr
    str2Att=split(strAtt,".")
    if dic.Exists(str2Att(0)) then
           dic.Item(str2Att(0))=dic.Item(str2Att(0)) & "," & str2Att(1)    
     else        
           dic.Add str2Att(0),str2Att(1)            
     end if
next
for each strKey in dic.Keys 
    response.write "["&strKey&"]"&dic.Item(strKey)&"<br>"
next

查看效果

另外一个是利用dictionary创建二维数组的例子,这样做的优点是数组下标可以是字符串并且长度不是固定的

Set a1 = CreateObject("scripting.dictionary")
For i=1 To 9
  Set a2 = CreateObject("scripting.dictionary")
  For j=1 To 12
     a2.add CStr("aaa"&j),CStr("b"&i&"b"&j*10)
  Next
  a1.add ("bbb"&i),a2
  Set a2=Nothing
Next
For i=1 To 9
  For j=1 To 12
   acs=a1("bbb"&i)("aaa"&j)
   response.write acs&"    "
  Next
  response.write "<Br>"
Next
response.end
Set a1=Nothing 

查看演示

标签:dictionary,对象,数组
0
投稿

猜你喜欢

  • 基于Python数据可视化利器Matplotlib,绘图入门篇,Pyplot详解

    2022-11-20 07:59:16
  • 十行代码使用Python写一个USB病毒

    2021-08-27 17:05:41
  • Python中 传递值 和 传递引用 的区别解析

    2023-12-26 07:05:22
  • 系统默认的MySQL用户名消失的解决方法

    2008-12-02 14:26:00
  • sqlserver中with(nolock)深入分析

    2024-01-27 13:39:48
  • PHP结构型模式之外观模式

    2023-05-25 11:43:14
  • Python基于scrapy采集数据时使用代理服务器的方法

    2022-06-03 08:37:04
  • Django搭建MySQL主从实现读写分离

    2024-01-14 08:13:09
  • MySQL数据库中应当如何实施info()函数

    2008-11-27 15:04:00
  • javascript中的replace函数(带注释demo)

    2024-04-18 09:47:52
  • Python的Flask框架中Flask-Admin库的简单入门指引

    2021-11-06 03:30:19
  • Python读取大型数据文件的6种方式汇总

    2021-06-29 12:19:33
  • 一篇文章搞定Mysql日期时间函数

    2024-01-20 19:32:58
  • Oracle例外用法实例详解

    2024-01-16 21:46:23
  • Python数据可视化实现正态分布(高斯分布)

    2022-10-28 03:31:29
  • Python 实现打印单词的菱形字符图案

    2021-06-30 20:08:52
  • python多线程semaphore实现线程数控制的示例

    2022-12-29 18:31:40
  • 给Django Admin添加验证码和多次登录尝试限制的实现

    2022-10-17 01:09:34
  • Go使用Gin+mysql实现增删改查的详细实例

    2024-01-20 20:38:43
  • php中使用key,value,current,next和prev函数遍历数组的方法

    2023-10-18 20:17:39
  • asp之家 网络编程 m.aspxhome.com