Dictionary Dictionary -dic = new Dictionary();Hashtable -ht

学习 时间:2026-04-04 16:30:53 阅读:4077
Dictionary Dictionary _dic = new Dictionary();Hashtable _ht = new Hashtable();while (_dr.Read()){_ht.Clear();for (int i = 0; i < _dr.FieldCount; i++){_ht.Add(_dr.GetName(i),_dr[i]);}_dic.Add(_i,_ht);_i++;}我原本是想循环记录集并将其添加到hashtable中,再将记录依次添加到dictionary里.但是每次循环后,dictionary里hashtable的值都变掉了(就是dictionary 和 dictionary里的所有hashtable都同步更新,都是一个值.),该怎么改才能实现我要的结果呢?

最佳回答

悲凉的红牛

直率的咖啡豆

2026-04-04 16:30:53

Dictionary _dic = new Dictionary();Hashtable _ht;while (_dr。Read()){_ht=new Hashtable(); // 每个循环都创建一个新的对象for (int i = 0; i < _dr。FieldCount; i++){ _ht。Add(_dr。GetName(i), _dr[i]);} _dic。Add(_i, _ht); _i++;}dictionary放的是hashtable对象的引用。因为你只new 了一个hashtable对象,当然会出现同步更新的现象了。解决办法是每个循环都new一个hashtable对象。

最新回答共有2条回答

  • 俏皮的高山
    回复
    2026-04-04 16:30:53

    Dictionary _dic = new Dictionary();Hashtable _ht;while (_dr。Read()){_ht=new Hashtable(); // 每个循环都创建一个新的对象for (int i = 0; i < _dr。FieldCount; i++){ _ht。Add(_dr。GetName(i), _dr[i]);} _dic。Add(_i, _ht); _i++;}dictionary放的是hashtable对象的引用。因为你只new 了一个hashtable对象,当然会出现同步更新的现象了。解决办法是每个循环都new一个hashtable对象。

上一篇 starve sb.into doing sth.怎么翻译?

下一篇 食物链能量流动问题草→鼠→鹰 和 草→鼠→蛇→鹰两条食物链为什么说第一条中鹰获得的能量多,虽然能量是逐级递减,可蛇为了活