我的数据结构如下:
哪种C#数据结构最适合存储和检索这些?
我希望能够引用Dev,Dev.Value1,Dev.Key1,Test,Test.Key1等等。
更新:我有一个json文件,当我解析它时,我得到了这些值。因此,环境(Dev,Test)的数量将更像(Dev,Test,UAT,Stable,Prod)。每个环境中Key,Value对的数量也不同。我需要将它们分别存储在一个结构中,以便以后使用它们。当我解析json时,我将得到一个环境(Dev)及其所有键,值对,然后我将获得Test,然后是其所有键值对。
答案 0 :(得分:1)
你可以像这样上课......
public class Environment
{
Dictionary<string, string> KeyValueData { get; set; }
public string Name { get; set; }
public Environment(string name)
{
Name = name;
KeyValueData = new Dictionary<string, string>();
}
public void AddNewData(string key, string value)
{
this.KeyValueData.Add(key, value);
}
}
用法:
List<Environment> environments = new List<Environment>();
Environment env = new Environment("Test");
env.AddNewData("key1", "value1");
env.AddNewData("key2", "value2");
env.AddNewData("key3", "value3");
Environment env2 = new Environment("Prod");
env2.AddNewData("key1", "value1");
env2.AddNewData("key2", "value2");
env2.AddNewData("key3", "value3");
//...
environments.Add(env2);
答案 1 :(得分:0)
这样的事情可以帮到你。
var environments = new Dictionary<string, Dictionary<string, string>>
{
{
"Dev", new Dictionary<string, string>
{
{"Key1", "Value1"},
{"Key2", "Value2"}
}
},
{
"Test", new Dictionary<string, string>
{
{"Key1", "Value1"},
{"Key2", "Value2"}
}
}
};
var devKey1 = environments["Dev"]["Key1"];
environments["Prod"] = new Dictionary<string, string>
{
{"Key1", "Value1"},
{"Key2", "Value2"}
};
答案 2 :(得分:0)
就像其他人说的那样,你可以很容易地为此创建自己的类,但既然你在问这个问题,我认为你需要或者更愿意使用现有的代码。你需要的是一本字典词典。
例如
Dictionary<string, Dictionary<string,string>> ImAssBackwards = new Dictionary<string, Dictionary<string, string>>();
ImAssBackwards.Add("Dev",
new Dictionary<string, string>()
{
{
"Key1",
"Value1"
},
{
"Key2",
"Value2"
}
});
Dictionary<string, string> PantOnHeadSilly = ImAssBackwards["Dev"];