Что лучший способ состоит в том, чтобы циклично выполнить посредством перечисления, ища совпадающее значение?
string match = "A";
enum Sample { A, B, C, D }
foreach(...) {
//should return Sample.A
}
Вы ищете Enum.Parse
:
Sample e = (Sample)Enum.Parse(typeof(Sample), match);
Вы можете просмотреть значения в цикле, вызвав Enum.GetValues
или Enum.GetNames
.
Используйте Enum.Parse
(Sample)Enum.Parse(typeof(Samples), "A"); //returns Sample.A
public Sample matchStringToSample(string match)
{
return (Sample)Enum.Parse(typeof(Sample), match);
}
Вам придется обрабатывать случай, когда совпадение строки не является допустимым значением перечисления. Enum.Parse
в этом случае вызывает исключение ArgumentException
.