读书人

hashtable 嵌套hashtable 赋值,该怎么

发布时间: 2013-12-17 12:06:34 作者: rapoo

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

读书人网 >C#

热点推荐