Каков наилучший способ перечислить перечисление в поисках подходящего значения?Loop through enumeration
string match = "A";
enum Sample { A, B, C, D }
foreach(...) {
//should return Sample.A
}
Каков наилучший способ перечислить перечисление в поисках подходящего значения?Loop through enumeration
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
.
public Sample matchStringToSample(string match)
{
return (Sample)Enum.Parse(typeof(Sample), match);
}
Вы должны были бы рассмотреть случай, когда матч строка не является допустимым значением перечисления. Enum.Parse
выбрасывает ArgumentException
в этом случае.
Если вы ожидаете, что он иногда сбой, используйте Enum.TryParse() –
@Nelson: 'Enum.TryParse' является новым для .Net 4.0. – SLaks
Enum.Parse(typeof(Sample), "A");
Использование Enum.Parse
(Sample)Enum.Parse(typeof(Samples), "A"); //returns Sample.A
@Mark Byers, это просто пример. Дайте ему передышку. – AMissico
Еогеасп что? Что именно вы пытаетесь проверить? – Kobi
Я ищу, чтобы увидеть, существует ли «A» и возвращает значение совпадающего счетчика – Germ