【发布时间】:2022-06-15 04:17:00
【问题描述】:
我刚开始在 C# 中使用 Dictionary,但我不知道如何创建具有这种形式的 Dictionary:
{
"Lifecycle": [
{
"default_value": "45",
"group_name": "Lifecycle",
"setting_value": "45",
"setting_description": "Åldersavdrag gräns"
},
{
"default_value": "2.5",
"group_name": "Lifecycle",
"setting_value": "2.5",
"setting_description": "Åldersavdrag procent",
},
],
},
{
"Test": [
{
"default_value": "0",
"group_name": "Test",
"setting_value": "0",
"setting_description": "Administration fee",
}
],
}
我现在的代码如下所示:
代表对象的类:
public class Configuration
{
public string default_value { get; set; }
public string group_name { get; set; }
public string setting_value { get; set; }
public string setting_description { get; set; }
}
public class Configurations
{
public List<Configuration> configurations;
}
在我的主类中,我正在创建新的配置对象并将它们添加到配置列表中:
Configuration configuration1 = new Configuration()
{
default_value = "45",
group_name= "Lifecycle",
setting_value= "45",
setting_description= "Medicinsk invaliditet - Åldersavdrag gräns",
};
Configuration configuration2 = new Configuration()
{
default_value = "2.5",
group_name = "Lifecycle",
setting_value = "2.5",
setting_description = "Medicinsk invaliditet - Åldersavdrag procent"
};
Configuration configuration3 = new Configuration()
{
default_value = "0",
group_name = "Test",
setting_value = "0",
setting_description = "Administration fee",
};
List<Configuration> configurations = new List<Configuration>();
configurations.Add(configuration1);
configurations.Add(configuration2);
configurations.Add(configuration3);
然后在 foreach 循环中,我尝试像这样创建字典:
foreach (Configuration config in configurations)
{
Configuration configuration = new Configuration();
configuration.default_value = config.default_value;
configuration.group_name = config.group_name;
configuration.setting_value = config.setting_value;
configuration.setting_description = config.setting_description;
configs.configurations.Add(configuration);
Dictionary<string, List<Configuration>> configurationDictionary = new Dictionary<string, List<Configuration>>();
configurationDictionary.Add(config.group_name, configs.configurations);
}
但它不起作用,我在字典中得到的是这样的:
{
"Test": [
{
"default_value": "45",
"group_name": "Lifecycle",
"setting_value": "45",
"setting_description": "Medicinsk invaliditet - Åldersavdrag gräns"
},
{
"default_value": "2.5",
"group_name": "Lifecycle",
"setting_value": "2.5",
"setting_description": "Medicinsk invaliditet - Åldersavdrag procent"
},
{
"default_value": "0",
"group_name": "Test",
"setting_value": "0",
"setting_description": "Administration fee"
}
]
}
是否可以像第一个代码 sn-p 那样生成一个字典?
【问题讨论】:
-
使用 LINQ 的
GroupBy函数。
标签: c# dictionary foreach