请教高手们一个初级问题
点击按钮使数组自动存入哈希表,并递增键或值。
代码如下:
       public void button1_Click(object sender, EventArgs e)
        {       
            Hashtable ht = new Hashtable();
            string[] arr0 = this.richTextBox1.Text.Split(' ');
            int i=0;
            ht.Add(i, arr0);
         }
我要达到的效果是,每点击一次button的OK按钮,arr0的内容就自动存入ht这个Hashtable里。而 i 则自动递增。比如点击一次OK,i 为0,第二次点击,i 为1,第三次点击,i 为三,依次递增,。但是我每次点击OK, i 的值都是0 ,
尝试放入for 循环中
        public void button1_Click(object sender, EventArgs e)
        {       
            Hashtable ht = new Hashtable();
            string[] arr0 = this.richTextBox1.Text.Split(' ');
            int i=0;
            for (;; i++)
            {
              ht.Add(i, arr0);
            }
            foreach (DictionaryEntry de in hh)
            {
                MessageBox.Show(de.Key.ToString()+de.Value .ToString ());
            }
         }
则是每次点击MessageBox的“确定”按钮才递增1,  
把键值对互换之后,hh.Add(arr0,a),点击OK则出现错误提示:
已添加项。字典中的关键字:“System.Collections.ArrayList”所添加的关键字:“System.Colletions.ArrayList”。
也就是这行hh.Add(arr0,a). 这可怎么解决啊?是初级问题,还是不能实现?有没有好办法解决?  谢谢!!

解决方案 »

  1.   

    //将Hashtable定义为全局的  
      Hashtable   ht   =   new   Hashtable();
                                     
     public   void   button1_Click(object   sender,   EventArgs   e)
                    {              
                            string[]   arr0   =   this.richTextBox1.Text.Split( '   ');
                            int   i=0;
                            ht.Add(i,   arr0);
                      } 第二个错误的原因是Hashtable中的key不能重复
      

  2.   

    谢谢您的回复!
    但是点击OK之后还是不能递增,第一次点击MessageBox显示的是 0System.Collections.ArrayList.
    第二次点击时提示错误:
    已添加项。字典中的关键字“0” 所添加的关键字:“0”。我得怎样第二次录入的时候让它递增啊。
    是不是得写个事件清除所有第一次录入的内容 并让 i 自动递增?
    还有,能不能改成  ht.Add(arr0,i) ?要不所有的资料添加到 Hashtable 之后再对 Hashtable的键值互换?在线等待。
      

  3.   

    没人回答了....55555..
    还是谢谢Seeko0 !! 我自己再考虑考虑了
     就此结帖了.