【发布时间】:2019-07-14 04:08:12
【问题描述】:
我写了如下代码结构:
public Dictionary<string, Dictionary<string, Object>> file_data = new Dictionary<string, Dictionary<string, Object>>();
public Form1()
{
InitializeComponent();
Dictionary<string, Object> temporary = new Dictionary<string, Object>();
temporary.Add("content", null);
temporary.Add("droplist", false);
temporary.Add("valid_file", false);
file_data.Add("base_data", temporary);
file_data.Add("supplier_data_1", temporary);
file_data["base_data"]["droplist"] = true;
MessageBox.Show(file_data["supplier_data_1"]["droplist"].ToString());
}
我只是想更新["base_data"]["droplist"],但代码也更新了["supplier_data_1"]["droplist"] 值(消息框显示为真)。为什么这样做?我必须如何调整 file_data["base_data"]["droplist"] 将仅更改的代码? Dictionary 必须保持其结构。
【问题讨论】:
-
base_data 和supplier_data_1 指向同一个字典。您可以通过
file_data.Add("supplier_data_1", new Dictionary<string, object>(temporary));使供应商数据 1 指向字典的单独副本
标签: c# dictionary