首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

hashtable 嵌套hashtable 赋值,该怎么处理

2013-12-17 
hashtable 嵌套hashtable 赋值说明,我问htname[一号锅炉]的value 赋值,但程序全部都赋值了,但当htname

hashtable 嵌套hashtable 赋值


说明,我问htname["一号锅炉"]的value 赋值,但程序全部都赋值了,  但当htname 的value为string类型时没问题
[解决办法]
因为你的_date是个类 ,应该说是引用类型的,实质上你改变"一号锅炉"里面的hashtable(_date)实质上只要用到这个hashtable(_date)的地方都会改变
[解决办法]
引用:
static void Main(string[] args)
        {
            Hashtable htname = new Hashtable();
            Hashtable _date = new Hashtable();
            for (int i = 0; i < 5; i++)
            {
                _date.Add(i.ToString(),"0");
            }
            htname.Add("一号锅炉",_date);
            htname.Add("二号锅炉",_date);

            for (int i = 0; i < 5; i++)
            {
                string name = "一号锅炉";


                string ele = (2 + 2).ToString();
                Hashtable date = new Hashtable();
                date = htname[name] as Hashtable;
                date[2.ToString()] = ele;
                htname[name] = date;

            }
            foreach (DictionaryEntry item in htname["一号锅炉"] as Hashtable)
            {
                Console.WriteLine(item.Key.ToString() + "," + item.Value.ToString());
            }
            foreach (DictionaryEntry item in htname["二号锅炉"] as Hashtable)
            {
                Console.WriteLine(item.Key.ToString() + "," + item.Value.ToString());
            }
            Console.Read();
        }



hashtable 嵌套hashtable 赋值,该怎么处理
说明,我问htname["一号锅炉"]的value 赋值,但程序全部都赋值了,  但当htname 的value为string类型时没问题


解决办法就是 每次 htname.Add()的时候都要初始化一个hashtable

热点排行