我想存储一个班级内的欧元硬币的直径,并使用该班级的方法通过其直径获取硬币的价值(值)。从字典中获取键值对
首先,我不确定在初始化时使用类和构建它的字典是一个好主意或不是如此如果你知道更好的方式,请让我现在。
其次,我写的代码,这个类是这样的:
class EuroCoinSpecs
{
public Dictionary<double, decimal> CoinsDiameters;
public EuroCoinSpecs()
{
CoinsDiameters = new Dictionary<double, decimal>
{
{25.75, 2.00m},
{23.25, 1.00m},
{24.25, 0.50m},
{22.25, 0.20m},
{19.75, 0.10m},
{21.25, 0.05m},
{18.75, 0.02m},
{16.25, 0.01m}
};
}
public decimal GetValueForDiameter(double diameter)
{
return CoinsDiameters.FirstOrDefault(x => x.Key == diameter);
}
}
的问题是在GetValueForDiameter
的代码不会因为这个错误的编译:
Cannot implicitly convert type 'System.Collections.Generic.KeyValuePair<double,decimal>' to 'decimal'
我尝试不同的方法,但它不想工作。可能是什么问题?
谢谢,你说的是真的如果在欧洲只有8种类型的硬币! – 2012-03-27 18:52:00
这不是一个有多少类型的问题,而是多少类型的属性。想象一下,如果您决定为硬币的重量再加上一个小数,并为其制成的材质枚举。突然之间,你的字典表示正在膨胀成三个平行的字典(或某物)。这是你用这种方式维护原始元素时所遇到的滑坡。 – 2012-03-27 18:54:49