简体   繁体   English

字典 <string, int> 没有价值

[英]Dictionary<string, int> does not have value

I have problem with put values into Dictionary. 将值放入Dictionary中时遇到问题。

My Code: 我的代码:

Dictionary<string, Dictionary<string, int>> cnDict = new Dictionary<string, Dictionary<string, int>>();

Dictionary<string, int> cn = new Dictionary<string,int>();

cn.Add("DynamicPanel_1", 0);
cn.Add("DynamicPanel_3", 1);
cn.Add("DynamicPanel_4", 0);
this.cnDict.Add("DynamicPanel_2", cn);

cn.Clear();

cn.Add("DynamicPanel2", 1);
cn.Add("DynamicPanel3", 0);
this.cnDict.Add("DynamicPanel1", cn);
foreach(KeyValuePair<string, int> pos in cnDict["DynamicPanel_2"])
{
    MessageBox.Show("DynamicPanel_2 has values: "+ pos.Key + " ----> " + pos.Value.ToString()); ;
}

foreach (KeyValuePair<string, int> pos in cnDict["DynamicPanel_1"])
{
    MessageBox.Show("DynamicPanel_1 has values: " + pos.Key + " ----> " + pos.Value.ToString()); ;
}

This code display wrong messages: 此代码显示错误消息:

  • DynsmicPanel_2 has values: DynamicPanel_2 ----> 1 DynsmicPanel_2具有值:DynamicPanel_2 ----> 1
  • DynsmicPanel_2 has values: DynamicPanel_3 ----> 0 DynsmicPanel_2具有值:DynamicPanel_3 ----> 0

  • DynsmicPanel_1 has values: DynamicPanel_2 ----> 1 DynsmicPanel_1具有值:DynamicPanel_2 ----> 1

  • DynsmicPanel_1 has values: DynamicPanel_3 ----> 0 DynsmicPanel_1具有值:DynamicPanel_3 ----> 0

Should be: 应该:

  • DynsmicPanel_2 has values: DynamicPanel_1 ----> 0 DynsmicPanel_2具有值:DynamicPanel_1 ----> 0
  • DynsmicPanel_2 has values: DynamicPanel_3 ----> 1 DynsmicPanel_2具有值:DynamicPanel_3 ----> 1
  • DynsmicPanel_2 has values: DynamicPanel_4 ----> 0 DynsmicPanel_2具有值:DynamicPanel_4 ----> 0

  • DynsmicPanel_1 has values: DynamicPanel_2 ----> 1 DynsmicPanel_1具有值:DynamicPanel_2 ----> 1

  • DynsmicPanel_1 has values: DynamicPanel_3 ----> 0 DynsmicPanel_1具有值:DynamicPanel_3 ----> 0

What I do wrong ? 我做错了什么?

Thanks 谢谢

You add same cn object twice to cnDict dictionary. 您将相同的cn对象两次添加到cnDict字典。 Create new object: replace cn.Clear(); 创建新对象:替换cn.Clear(); by cn = new Dictionary<string,int>(); by cn = new Dictionary<string,int>();

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM