gpt4 book ai didi

c# - 从字典中获取键值对

转载 作者:行者123 更新时间:2023-11-30 19:06:43 28 4
gpt4 key购买 nike

我想将欧元硬币的直径存储在一个类中,并使用该类中的方法通过其直径获取硬币的值(value)。

首先,我不确定使用一个类并在初始化时构建它的字典是个好主意,所以如果您知道更好的方法,请告诉我。

其次,我是这样写这个类的代码的:

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'

我尝试了不同的方法,但它不想工作。可能是什么问题?

最佳答案

其他人已经给出了使用 FirstOrDefault 获取的方法 - 但对我来说这似乎毫无意义。为什么不利用您拥有一本旨在为您执行键查找的字典这一事实?

public decimal GetValueForDiameter(double diameter)
{
decimal ret;
// This will set ret to 0m if the key isn't found.
CoinsDiameters.TryGetValue(diameter, out ret);
return ret;
}

综上所述,我强烈建议您不要像这样对double 值执行相等操作。在您给出的情况下它会正常工作,但一旦您开始使用任何类型的算术,您很可能最终会导致问题。

关于c# - 从字典中获取键值对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9895585/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com