我正在寻找一种在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根据需要选择数据。
您想对数据做什么?