我想存儲一個班級內的歐元硬幣的直徑,並使用該班級的方法通過其直徑獲取硬幣的價值(值)。從字典中獲取鍵值對
首先,我不確定在初始化時使用類和構建它的字典是一個好主意或不是如此如果你知道更好的方式,請讓我現在。
其次,我寫的代碼,這個類是這樣的:
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