现在的位置: 首页 > 综合 > 正文

Hashtable-asp.net入门(六)

2012年07月11日 ⁄ 综合 ⁄ 共 1928字 ⁄ 字号 评论关闭

  Hashtable 类

  一。介绍

   表示键/值对的集合,这些键/值对 根据键的哈希代码进行组织。

   提供快速的查询。元素的存储与顺序无关。不能在指定位置插入元素,因为它本身没有有效的排序。感觉它的优点体现在查询上。

   hashtable的键必须是唯一的,没有有效的排序,它进行的是内在的排序

public class Hashtable : IDictionary, ICollection, IEnumerable,

   ISerializable, IDeserializationCallback, ICloneable

  每个元素是一个存储在 DictionaryEntry 对象中的键/值对。键不能为空引用(Visual Basic 中为 Nothing),但值可以。

  注:所谓的DictionaryEntry 结构,就是定义可设置或检索的字典键值对,有一个Key属性,一个Value属性,分别代表键和值

  二。添加

Hashtable.Add 方法

public virtual void Add(

   object key,

   object value

);

将带有指定键和值的元素添加到 Hashtable 中。

key 要添加的元素的键。

value 要添加的元素的值。该值可以为空引用(Visual Basic 中为 Nothing)。

  通过设置 Hashtable 中不存在的键的值,Item 属性也可用于添加新元素。例如:myCollection["myNonexistentKey"] = myValue。但是,如果指定的键已经存在于 Hashtable 中,设置 Item 属性将改写旧值。相比之下,Add 方法不修改现有元素。

Hashtable hTable = new Hashtable();

hTable.Add("1","a");

hTable.Add("2","b");

hTable.Add("3","c");

hTable.Add("4","d");

hTable.Add("5","e");

//hTable.Add("1","aaaaaaaaaaa");  //出错,因为已经有键“1”

hTable["1"] = "aaaaaaaaaaa";  //ok

DropDownList2.DataSource = hTable;

DropDownList2.DataTextField = "Key";

DropDownList2.DataValueField = "Value";

DropDownList2.DataBind();

  二。删除

1。public virtual void Remove(

   object key

);

从 Hashtable 中移除带有指定键的元素。

如果 Hashtable 不包含带有指定键的元素,则 Hashtable 保持不变。不引发异常。

2。public virtual void Clear();

从 Hashtable 中移除所有元素。

Count 设置为零。容量保持不变。

三。其他

1。public virtual ICollection Values {get;}

获取包含 Hashtable 中的值的 ICollection。

注:ICollection 接口,定义所有集合的大小、枚举数和同步方法。

Hashtable hTable = new Hashtable();

hTable.Add("1","a");

hTable.Add("2","b");

hTable.Add("3","c");

hTable.Add("4","d");

hTable.Add("5","e");

Label2.Text = "";

foreach (string strKey in hTable.Keys)  //遍历

{

Label2.Text += strKey;

Label2.Text += ",";

}

2。public virtual ICollection Keys {get;}

获取包含 Hashtable 中的键的 ICollection。

返回的 ICollection 不是静态副本;相反,ICollection 反向引用原始 Hashtable 中的键。

因此,对 Hashtable 的更改继续反映到 ICollection 中。

3。public virtual bool Contains(

   object key

);

确定 Hashtable 是否包含特定键。

4。public virtual bool ContainsKey(

   object key

);

确定 Hashtable 是否包含特定键。与Contains同

5。public virtual bool ContainsValue(

   object value

);

确定 Hashtable 是否包含特定值

6。public virtual int Count {get;}

获取包含在 Hashtable 中的键值对的数目

抱歉!评论已关闭.