程序开发 > C# > 正文

Hashtable添加删除修改及注意问题(C#)

亮术网 2020-07-23 本网原创

Hashtable 是一个暂时存储数据的容器,它利于用 key/value 形式的键值对来快速存取数据,key 是用于快速查找数据的键,value 是键 key 中所存的值,所在的命名空间是 System.Collections,所以使用前别忘了先 using System.Collections;。

 

1、创建 Hashtable

Hashtable ht = new Hashtable();

如果要同步像下面这样:

Hashtable ht = Hashtable.Synchronized(new Hashtable());

 

2、向 Hashtable 中添加值

ht.Add("01", "userName1");
  ht.Add("02", "userName2");
  ht.Add("03", "userName3");

或者(添加的值有规律时)

for(int i = 0; i < 10; i++)
    ht.Add(i, i);

 

3、修改 Hashtable

ht["01"] = "user1";
  ht["02"] = "user2";
  ht["03"] = "user3";

 

4、删除 Hashtable

1)删除指定的键值对

ht.Remove("01");
  ht.Remove("02");
  ht.Remove("03");

 

2)删除 Hashtable 中所有元素

ht.Clear();

 

5、遍历删除特别提示

遍历 Hashtable 时,不能一边遍历一边删除,否则会出错。举例如下:

for(DictionaryEntry de in ht)
  {
    if(条件)
      ht.Remove(de.Key);
  }

像上例这样,在遍历过程中,如果满足某个条件,就删除该元素。这样遍历是会出异常的,因为在遍历过程中,Hashtable 的总数量(也就 Count) 发生的了变化,循环就会出现异常。

可能你会问,不能这样删除满足某个条件的元素,哪怎么删除?

办法也很简单,可以把要删除的健暂存到另一个 Hashtable 中,然后遍历这个暂存了键的 Hashtable,删除满足条件的元素即可。