我应该将权重存储在什么中
本文关键字:在什么 存储 权重 我应该 | 更新日期: 2023-09-27 18:28:00
我有一些重量(盎司、克等),但不知道该如何处理。起初,我打算使用Enum,给每个Enum一个整数值,然后将该值存储在我的数据库中(使用EF)
我觉得这是个好主意,因为那样我就可以像一样进行检查了
if(Measurement.Grams == usersChoice)
{
// do something
}
它也会限制选择(即,如果我不支持"石头",那么如果我试图在枚举中设置它,它就会失败),
然后我打算将枚举转换为一个数组并将其显示给用户,但我遇到了一个问题"Fluid Ounce"。我必须将其显示为"FluidOunce"。
我可以使用描述属性,但现在我不确定这是否是正确的方法。
选项1
使用enum Measurement
和Dictionary<Measurement, string>
从Measurement
映射到显示名称。
public enum Measurement
{
Grams,
FluidOunces,
...
}
private static Dictionary<Measurement, string> displayName = new Dictionary<Measurement, string>
{
{ Measurement.Grams, "Grams" },
{ Measurement.FluidOunces, "Fluid Ounces" },
...
};
public static string DisplayName(Measurement measurement)
{
return displayName[measurement];
}
选项2
使用没有公共构造函数、具有public static readonly
实例且具有属性的class Measurement
。
public class Measurement
{
public string DisplayName { get; private set; }
private Measurement(string displayName)
{
this.DisplayName = displayName;
}
public static readonly Measurement Grams = new Measurement("Grams");
public static readonly Measurement FluidOunces = new Measurement("Fluid Ounces");
...
}