Циклическое перечисление - PullRequest
5 голосов
/ 04 мая 2010

Какой лучший способ перебрать перечисление в поисках подходящего значения?

string match = "A";

enum Sample { A, B, C, D }

foreach(...) {
  //should return Sample.A
}

Ответы [ 4 ]

11 голосов
/ 04 мая 2010

Вы ищете Enum.Parse:

Sample e = (Sample)Enum.Parse(typeof(Sample), match);

Вы можете просмотреть значения, вызвав Enum.GetValues или Enum.GetNames.

0 голосов
/ 04 мая 2010

Использование Enum.Parse

(Sample)Enum.Parse(typeof(Samples), "A"); //returns Sample.A
0 голосов
/ 04 мая 2010
Enum.Parse(typeof(Sample), "A");
0 голосов
/ 04 мая 2010
public Sample matchStringToSample(string match)
{
    return (Sample)Enum.Parse(typeof(Sample), match);
}

Вам придется обработать случай, когда совпадение строки не является допустимым значением перечисления.Enum.Parse бросает ArgumentException в этом случае.

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