hashtable.add(key,data) 的时候,如果key已经存在则会引发异常错误, 我想让它自动覆盖行吗(类似java的hashmap)? 

解决方案 »

  1.   

    hashtable.ContainsKey(key)?(hashtable[key]=data):hashtable.add(key,data);
      

  2.   

    你可以从 Hashtable 派生个自定义类,重写 Add 方法。
      

  3.   


    if(hashtable.Contains(key))
    {
      hashtable[key]=data;
    }
    else
    {
      hashtable.Add(key,data);
    }
      

  4.   

    using System;
    using System.Collections;class MyHashtable:Hashtable
    {
        public override void Add(object key, object value)
        {
            try
            { 
                base.Add(key, value); 
            }
            catch (ArgumentException)
            {
                base[key] = value;
            }
        }
    }
    class Program
    {
        static void Main()
        {
            Hashtable ht = new MyHashtable();
            ht.Add(1, "a");
            Console.WriteLine(ht[1]);
            ht.Add(1, "b");
            Console.WriteLine(ht[1]);
            Console.Read();
        }
    }