在添加密钥之前检查Hashtable中的重复密钥

时间:2015-09-30 13:48:03

标签: c#-4.0 override hashtable

我有一个Hashtable,我希望在Hashtable中添加密钥之前,先检查Hashtable是否有密钥。在Hashtable抛出异常中添加重复键。 基本上我想要覆盖Hashtable的虚拟“添加”方法并对其进行检查。我不知道如何覆盖Add方法。

请帮我写一下覆盖方法。

2 个答案:

答案 0 :(得分:0)

您可以使用ContainsKey

另一种方法是使用Item indexer-property添加新密钥和现有更新。

var ht = new System.Collections.Hashtable();
ht["test"] = "foo"; // added
ht["test"] = "bah"; // updated

但是,您应该考虑用通用Hashtable替换旧的Dictionary<Tkey, Tval>no operator "[]" matches these operandsWhy?

答案 1 :(得分:0)

Hashtable类的Add方法是可覆盖的。所以试试这个:

class MyHashTable : Hashtable
{
    public override void Add(object key, object value)
    {
        try
        {
            base.Add(key, value);
        }
        catch
        {
            // whatever
        }
    }
}