我希望有一个从数据库查询构建的枚举,我坚持如何做到这一点。我的想法是有一个方法返回一个字符串列表并使用它来填充枚举,但我不确定这是否可能或正确的方法。 Enum将构建的表格很少会发生变化。有什么好办法来实现这个目标?
enum DrugColor
{
}
private List<string> BuildEnum()
{
List<string> EnumList = new List<string>();
using (SqlConnection con = new SqlConnection(cs))
{
using (SqlCommand cmd = new SqlCommand("select color from DrugColors", con))
{
con.Open();
cmd.CommandType = CommandType.Text;
SqlDataReader rdr = cmd.ExecuteReader();
while (rdr.Read())
{
string colorName;
colorName = rdr["Color"].ToString();
EnumList.Add(colorName);
}
}
return EnumList;
}
}
答案 0 :(得分:3)
所以你的函数应该返回一个枚举列表:
private List<DrugColor> BuildEnum()
这是第一件事。 当您声明返回的列表时,也将其更改为枚举列表:
List<DrugColor> EnumList = new List<DrugColor>();
从数据库中获取数据时,每个read()都是一种颜色,因此颜色名称为DrugColor
DrugColor colorName;
colorName = new DrugColor{(DrugColor)Enum.Parse(typeof(DrugColor ),rdr["Color"].ToString()); }
使用此方法将字符串解析为枚举。
然后将其添加到列表
瞧!
编辑:
你的枚举应包含的内容:
enum DrugColor
{
Red,
Blue,
Yellow
}
答案 1 :(得分:1)
枚举是在设计时创建的。简而言之,您不会在运行时实例期间生成枚举,因此您需要描述代码编写代码的需求。有多少种不同的药物颜色?看起来这样就可以轻松完成。