C#的Hashtable 类使用说明

一:Hashtable 类简单说明

1)表示根据键的哈希代码进行组织的键/值对的集合。使用哈希代码生成的哈希值,是唯一地标识数据的固定长度的数字值。
2)HashTable是System.Collections命名空间提供的一个容器,用于处理和表现类似keyvalue的键值对,其中key通常用来快速查找,key区分大小写;value用于存储对应key值。Hashtable中keyvalue键值对均为object类型,所以Hashtable可以支持任何类型的keyvalue键值对.

二:Hashtable 类的构造函数

构造函数构造函数说明
Hashtable()使用默认的初始容量、加载因子、哈希代码提供程序和比较器来初始化 Hashtable 类的新的空实例。
Hashtable(IDictionary)通过将指定字典中的元素复制到新的 Hashtable 对象中,初始化 Hashtable 类的一个新实例。 新 Hashtable 对象的初始容量等于复制的元素数,并且使用默认的加载因子、哈希代码提供程序和比较器。
Hashtable(IDictionary, IEqualityComparer)通过将指定字典中的元素复制到新的 Hashtable 对象中,初始化 Hashtable 类的一个新实例。 新 Hashtable 对象的初始容量等于复制的元素数,并且使用默认加载因子和指定的 IEqualityComparer 对象。
Hashtable(IDictionary, Single)通过将指定字典中的元素复制到新的 Hashtable 对象中,初始化 Hashtable 类的一个新实例。 新 Hashtable 对象的初始容量等于复制的元素数,并且使用指定的加载因子、默认哈希代码提供程序和默认比较器。

三:Hashtable 类的属性

构造函数构造函数说明
Count获取包含在 Hashtable 中的键/值对的数目。
EqualityComparer获取要用于 IEqualityComparer 的 Hashtable。
IsFixedSize获取一个值,该值指示 Hashtable 是否具有固定大小。
Item[Object]获取或设置与指定的键关联的值。
Keys获取包含 ICollection 中的键的 Hashtable。
Values获取一个 ICollection,它包含 Hashtable 中的值。

四:Hashtable 类的常用方法

1: Hashtable.Add(Object, Object) 的方法介绍

1)作用:将带有指定键和值的元素添加到 Hashtable 中。
2)语法:

public virtual void Add (object key, object value);

3)使用举例:

// 创建并初始化新的哈希表.
var myHT = new Hashtable();
myHT.Add("one", "The");
myHT.Add("two", "quick");
myHT.Add("three", "brown");
myHT.Add("four", "fox");

// 显示哈希表.
Console.WriteLine("哈希表包含以下内容:");
Console.WriteLine("\t-KEY-\t-VALUE-");
foreach (DictionaryEntry de in myHT)
{
    Console.WriteLine($"\t{de.Key}:\t{de.Value}");
}

4)运行结果:

哈希表包含以下内容:
  -KEY-   -VALUE-
  three:   brown
  one:   The
  two:   quick
  four:   fox

2: Hashtable.Clone ()的方法介绍

1)作用:创建 Hashtable 的浅表副本
2)语法:

public virtual object Clone ();

3)使用举例:

// 创建并初始化新的哈希表.
var myHT = new Hashtable();
myHT.Add(1, "Freedom");
myHT.Add(2, "Justice");
myHT.Add(3, "destiny");
myHT.Add(4, "GUNDAM");

// 克隆新的哈希表.
var myHT2 = (Hashtable)myHT.Clone();

// 显示克隆的哈希表.
Console.WriteLine("哈希表包含以下内容:");
Console.WriteLine("\t-KEY-\t-VALUE-");
foreach (DictionaryEntry de in myHT2)
{
    Console.WriteLine($"\t{de.Key}:\t{de.Value}");
}

4)运行结果:

哈希表包含以下内容:
  -KEY-   -VALUE-
  4:   GUNDAM
  3:   destiny
  2:   Justice
  4:   Freedom

3: Hashtable.ContainsKey(Object)和ContainsValue(Object)的方法介绍

1)作用:确定 Hashtable 是否包含特定键或者特定值。
2)语法:

public virtual bool ContainsKey (object key);
public virtual bool ContainsValue (object value);

3)使用举例:

// 创建并初始化新的哈希表.
var myHT = new Hashtable();
myHT.Add(1, "Freedom");
myHT.Add(2, "Justice");
myHT.Add(3, "destiny");
myHT.Add(4, "GUNDAM");

Console.WriteLine("The key \"{0}\" is {1}.", 3, myHT.ContainsKey(3) ? "在哈希表中" : "不在在哈希表中");
Console.WriteLine("The key \"{0}\" is {1}.", 6, myHT.ContainsKey(6) ? "在哈希表中" : "不在在哈希表中");

Console.WriteLine("The value \"{0}\" is {1}.", "Freedom", myHT.ContainsValue("Freedom") ? "在哈希表中" : "不在在哈希表中");
Console.WriteLine("The value \"{0}\" is {1}.", "GUNDAM", myHT.ContainsValue("GUNDAM") ? "在哈希表中" : "不在在哈希表中");

4)运行结果:

The key "3" is 在哈希表中.
The key "6" is 不在在哈希表中.-
The value "Freedom" is 在哈希表中.
The value "GUNDAM" is 在哈希表中.

4:Hashtable.Remove(Object)的方法介绍

1)作用:确定 Hashtable 是否包含特定键或者特定值。
2)语法:

public virtual void Remove (object key);

3)使用举例:

// 创建并初始化新的哈希表.
var myHT = new Hashtable();
myHT.Add(1, "Freedom");
myHT.Add(2, "Justice");
myHT.Add(3, "destiny");
myHT.Add(4, "GUNDAM");
myHT.Remove(4);//移除指定键的元素

foreach (DictionaryEntry de in myHT)
{
    Console.WriteLine($"\t{de.Key}:\t{de.Value}");
}

4)运行结果:

  3:  destiny
  2:  Justice
  1:  Freedom
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值