использовать enum или словарь? - PullRequest
2 голосов
/ 25 января 2012

У меня есть база данных с полем состояния, в котором могут храниться следующие значения:

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

Конечно, я просто храню число в виде данных tinyint в моей базе данных.Затем мне нужно запросить эту таблицу, но графический интерфейс должен показать строковое значение, а не числовое значение.

Как лучше всего достичь этого?Должен ли я использовать тип данных Enum или словарь?Каковы будут преимущества использования одного над другим?

Кроме того, результаты будут показаны в таблице данных

Ответы [ 2 ]

2 голосов
/ 25 января 2012

Я бы выбрал следующий подход:

  • Отображение значений tinyint в enum
  • Создание статического Dictionary<TheEnumType, string>, который отображает значения в пользовательскую строку

Например,

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

Теперь вы можете легко конвертировать между значением БД и соответствующим перечислением

int theDbValue = ...;
Names name = (Names)theDbValue;

Теперь можно построить отображение между именами.легко сделать с помощью Dictionary<Names, string>.

var map = new Dictionary<Names, string>();
map[Names.Registrado] = "...";
map[Names.Activo] = "...";
// etc ...
1 голос
/ 25 января 2012

Если мы говорим об ограниченном количестве вариантов, я бы предложил перечисления, поскольку с точки зрения производительности они намного лучше.Пара похожих вопросов, которые могут помочь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...