如何实现C#中Hashtable的自定义键类型

   2024-10-01 7590
核心提示:要实现C#中Hashtable的自定义键类型,首先需要创建一个自定义的类作为键类型,然后重写该类的Equals和GetHashCode方法。这样可以

要实现C#中Hashtable的自定义键类型,首先需要创建一个自定义的类作为键类型,然后重写该类的Equals和GetHashCode方法。这样可以确保Hashtable在查找键值对时能够正确比较自定义键类型的实例。

下面是一个示例代码,演示了如何实现自定义键类型的Hashtable:

using System;using System.Collections;// 自定义键类型public class CustomKey{    public int Id { get; set; }    public string Name { get; set; }    public override bool Equals(object obj)    {        if (obj == null || GetType() != obj.GetType())        {            return false;        }        CustomKey other = (CustomKey)obj;        return Id == other.Id && Name == other.Name;    }    public override int GetHashCode()    {        return Id.GetHashCode() ^ Name.GetHashCode();    }}class Program{    static void Main()    {        Hashtable hashtable = new Hashtable();        CustomKey key1 = new CustomKey { Id = 1, Name = "Key1" };        CustomKey key2 = new CustomKey { Id = 2, Name = "Key2" };        hashtable[key1] = "Value1";        hashtable[key2] = "Value2";        Console.WriteLine(hashtable[key1]); // 输出 "Value1"        Console.WriteLine(hashtable[key2]); // 输出 "Value2"    }}

在上面的示例中,我们创建了一个名为CustomKey的自定义键类型,其中包含Id和Name属性。然后重写了Equals和GetHashCode方法,以确保键值对在Hashtable中的正确比较。

在Main方法中,我们创建了一个Hashtable实例,并用自定义键类型作为键,将值存储在Hashtable中。最后,我们通过自定义键类型来获取值,并输出结果。

 
举报打赏
 
更多>同类物流大全
推荐图文
推荐物流大全
点击排行

网站首页  |  关于我们  |  联系方式网站留言    |  赣ICP备2021007278号