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() + "||");
}
}
------解决思路----------------------
别调用maxgoods.Clear就行了
------解决思路----------------------
查下深copy,如果两个要互相不影响,只能深copy,而不是简单的赋值
------解决思路----------------------
newgoodslist.Add(maxgoods); 这只是把对像给加入了
maxgoods.Clear(); 。。。。 然后你清除了这个对象的子项。。
所以没了。。。
所以你要把这句去掉
------解决思路----------------------
不用定义这样一个中间变量。
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 }
});
------解决思路----------------------
newgoodslist.Add(new Dictionary<string,decimal>(maxgoods))
这样也就没关系了