如何将多个键值对添加到一系列字典(或类似解决方案)中



我正在寻找一种在C#(或替代方案(中编写一系列字典的更清洁方式,当它们都具有相同的键值配对时(只有值不同(。

我需要创建3个动力植物对象,其中所有3个都需要具有" dam","转移"one_answers"第一个"的属性的不同值,并且我在以后使用属性的不同值代码。我在C#中编写代码方面是相当新的,因此,当我搜索解决此问题的最佳方法时,我遇到了词典,并决定将其使用。到目前为止,我已经在程序类中创建了3个字典的数组,然后在主方法中添加了所需值。

static Dictionary<string, int>[] power_plant = new Dictionary<string, int>[]
         {
            new Dictionary<string, int>(),
            new Dictionary<string, int>(),
            new Dictionary<string, int>()
         };
for (int i = 0; i < 3; i++) 
{
   if (i == 0)
   {
      power_plant[i].Add("Dam", 1);
      power_plant[i].Add("Diversion", 0);
      power_plant[i].Add("First", 1);
   }
   else if (i==1)
   {
      power_plant[i].Add("Dam", 1);
      power_plant[i].Add("Diversion", 0);
      power_plant[i].Add("First", 0);
   }
   else
   {
      power_plant[i].Add("Dam", 0);
      power_plant[i].Add("Diversion", 1);
      power_plant[i].Add("First", 0);
   }
}

,尽管代码正常工作,但我觉得必须有一种更好的方法来实现我需要的东西,无论是使用字典还是使用完全不同的类型的清洁代码。但是,我没有考虑替代方案所需的知识。

任何帮助将不胜感激。

欢迎来到C#世界!我不确定您要实现什么目标,但似乎您已经使工作变得复杂了。检查一下:

我需要创建3个动力植物对象,其中所有3个都需要具有"大坝","转移"one_answers" First"

的属性不同的值

在这种情况下,创建一个动力装置类:

public class PowerPlant
{
    public PowerPlant(int dam, int diversion, int first)
    {
        Dam = dam;
        Diversion = diversion;
        First = first;
    }
    public int Dam { get; }
    public int Diversion { get; }
    public int First { get; }
}

然后将其添加到列表中:

var PowerPlants = new List<PowerPlant>
{
    new PowerPlant(1, 0, 1),
    new PowerPlant(1, 0, 0),
    new PowerPlant(0, 1, 0)
};

那会帮助您吗?让我知道是否这样。

我认为最好用3属性大坝,转移和首先创建动力装置类。

public class PowerPlant
{
    public int Dam { get; set; }
    public int Diversion { get; set; }
    public int First { get; set; }
}

并创建对象的列表

static List<PowerPlant> powerPlants = new List<PowerPlant>
{
    new PowerPlant { Dam = 1, Diversion = 0, First = 1},
    new PowerPlant { Dam = 1, Diversion = 0, First = 0},
    new PowerPlant { Dam = 0, Diversion = 1, First = 0}
};

然后您可以使用Linq根据需要选择数据。

您想对数据做什么?

最新更新