嗨,我如何在c#中制作这样的数组??: 设置宽度和高度是从文件加载的
properties["settings"]["width"] = "bbb";
properties["settings"]["height"] = "cccc";
和dynamic_string_key是从文件加载的密钥,我不知道将有多少个或什么密钥名称和值:)
properties["sets_of_data"][dynamic_string_key]= "lalala";
properties["sets_of_data"][dynamic_string_key]= "lalala";
properties["sets_of_data"][dynamic_string_key]= "lalala";
properties["sets_of_data"][dynamic_string_key]= "lalala";
答案 0 :(得分:2)
C#中的数组仅允许您通过索引(整数)查找元素,而不是通过任意字符串查找元素。在C#中,这是Dictionary<>
。
您可以使用字典中的字典,但这并不容易:
var data = new Dictionary<string, Dictionary<string, string>>();
data["settings"] = new Dictionary<string, string>();
data["settings"]["width"] = "bbb";
但这似乎过于复杂。如果您知道自己将拥有“设置”,那么仅拥有一个用于设置的字典可能更易读:
var settings = new Dictionary<string, string>();
settings["width"] = "bbb";
答案 1 :(得分:1)
如果您的文件是JSON,则可以使用JSON.NET并像这样
JObject obj = JObject.Parse(File.ReadAllText("foo.json"));
var bar = (string)obj["foo"]["bar"];
答案 2 :(得分:0)
您可以使用
Dictionary<string, Dictionary<string, string>> properties =
Dictionary<string, Dictionary<string, string>>
{
{
"settings",
new Dictionary<string, string>
{
{"width", "200"},
{"height", "150"},
}
}
};
答案 3 :(得分:0)
或者您可以使用元组,特别是命名元组
var exampleNamedTuple = (Height: 0, Width: 0, Value: "");
var list = new List<(int Height, int Width, string Value)>();
list.Add(exampleNamedTuple);
var height = list.First().Height;
var width = list.First().Width;
var value = list.First().Value;
然后您可以将其分配给您的设置属性。