Есть ли инвариантный способ сравнения строк с Enum в Enum.IsDefined / Enum.Parse? - PullRequest
0 голосов
/ 21 сентября 2011

Так что, если у вас нет доступа к Enum или элементу управления над строкой, которая должна сравниваться со значениями enum, есть ли лучший или более чистый способ, чем приведенный ниже код, чтобы получить значение Enum, которое соответствует и использует это в вызове:

 Enum.IsDefined() or 
 Enum.Parse()

Пример:

  var enumValues = Enum.GetValues(typeof(someType));

  foreach (var value in enumValues) {
        if (value.ToString().ToLowerInvariant() == stringToCompare.ToLowerInvariant()) {
                stringToCompare = value.ToString();
        }
  }

Что в этот момент, если было совпадение, вы имели бы правильное значение перечисления, которое затем могли бы использовать в (Enum.IsDefinied () или Enum.Parse ())

Есть ли лучший способ, чем я определил?

1 Ответ

1 голос
/ 21 сентября 2011
someType varName = Enum.Parse(typeof(someType), stringToCompare, true);

Используя эту перегрузку enum.Parse ()

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