C# 字典中的动态数组值每次添加value时会覆盖原来所有的值


Dictionary<String, ArrayList> dic = new Dictionary<String, ArrayList>();
ArrayList al = new ArrayList();
string property = null;

循环{
dic.Add(property, al);                
al.Clear();
}

img

img


想达到目标是将中括号中的存进字典的键,等于号前面的内容存入对应键内的值,这个值用动态数组存储着.

你的al要在dic.add之前new,它是引用类型,你dic里面加了al的多个相同地址,你执行al.clear当然把所有的都清了