使用枚举或字典?

时间:2012-01-25 18:26:21

标签: c# winforms entity-framework

我有一个数据库,其状态字段可以保留以下值:

  • 0 Registrado
  • 1 Activo
  • 2 Finalizado
  • 3 Anticipado
  • 4 Reestructurado

当然,我只是将数字保存在我的数据库中的tinyint数据类型中。然后我需要查询该表,但GUI必须显示字符串值而不是数值。

实现它的最佳方法是什么?我应该使用Enum数据类型还是字典?使用一个优于另一个的优势是什么?

此外,结果将显示在数据网格

2 个答案:

答案 0 :(得分:2)

我将采取的方法是

  • tinyint值映射到enum
  • 创建一个静态Dictionary<TheEnumType, string>,将值映射到用户字符串

例如

public enum Names {
  Registrado = 0,
  Activo = 1,
  Finalizado = 2,
  Anticipado = 3,
  Reestructurado = 4
}

现在,您可以轻松地在DB值和相应的枚举

之间进行转换
int theDbValue = ...;
Names name = (Names)theDbValue;

现在可以使用Dictionary<Names, string>轻松完成名称之间的映射。

var map = new Dictionary<Names, string>();
map[Names.Registrado] = "...";
map[Names.Activo] = "...";
// etc ...

答案 1 :(得分:1)

如果我们谈论的是有限的选择,我会建议枚举,因为表现明智,他们会好很多。一些可能有帮助的类似问题