ArrayList 加入 Dictionary的问题

beambeam 2015-10-20 10:41:48

            
Dictionary<string, decimal> maxgoods = new Dictionary<string, decimal>();
maxgoods.Add("1", 258);
maxgoods.Add("2", 152);

ArrayList newgoodslist = new ArrayList();
newgoodslist.Add(maxgoods);

maxgoods.Clear();

foreach (Dictionary<string, decimal> item in newgoodslist)
{
// maxgoods.Clear() 后 item 为何为空 ,有没有办法不为空
foreach (KeyValuePair<string, decimal> litem in item)
{
MessageBox.Show(litem.Key + "===" + litem.Value.ToString() + "||");
}
}


...全文
160 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
newgoodslist.Add(new Dictionary<string,decimal>(maxgoods)) 这样也就没关系了
ajianchina 2015-10-20
  • 打赏
  • 举报
回复
不用定义这样一个中间变量。

ArrayList newgoodslist = new ArrayList(); 
//or
//List<Dictionary<string, decimal>> newgoodslist = new List<Dictionary<string, decimal>>();

newgoodslist.Add(new Dictionary<string, decimal>() { 
	{ "1", 258 }, 
	{ "2", 152 } 
});
本拉灯 2015-10-20
  • 打赏
  • 举报
回复
newgoodslist.Add(maxgoods); 这只是把对像给加入了 maxgoods.Clear(); 。。。。 然后你清除了这个对象的子项。。 所以没了。。。 所以你要把这句去掉
  • 打赏
  • 举报
回复
查下深copy,如果两个要互相不影响,只能深copy,而不是简单的赋值
Poopaye 2015-10-20
  • 打赏
  • 举报
回复
别调用maxgoods.Clear就行了

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧