【问题标题】:How to populate a Dictionary using multiple keys如何使用多个键填充字典
【发布时间】: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


猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多