• 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);
    
    • 1

    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}");
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    4)运行结果:

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

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

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

    public virtual object Clone ();
    
    • 1

    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}");
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    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);
    
    • 1
    • 2

    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") ? "在哈希表中" : "不在在哈希表中");
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    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);
    
    • 1

    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}");
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    4)运行结果:

      3:  destiny
      2:  Justice
      1:  Freedom
  • 相关阅读:
    微软研究院团队获得首届AI药物研发算法大赛总冠军
    ChatGPT - 在ChatGPT中设置通用提示模板
    扭矩传感器信号模拟地、数据地与电源地
    计算机毕业设计(附源码)python悠哈出租车管理系统
    educoder_python:4-1-逻辑控制(if)第2关:求解一元二次方程组
    matplotlib画latex表格
    Spring篇---第一篇
    模型分类model
    Web前端 | JavaScript(DOM编程)
    车载语音交互「停摆」
  • 原文地址:https://blog.csdn.net/u010033786/article/details/126923119