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