Для вашего требования это, как просто, как уже указывали люди. Просто переведите объект enum в int и вы получите числовое значение перечисления.
int value = (int) TestEnum.TestOne;
Однако, если есть необходимость смешать значения перечисления с | (побитовое ИЛИ), например.
var value = TestEnum.TestOne | TestEnum.TestTwo;
и вы хотите, чтобы получить то, что варианты, которые смешивают вниз значение представляет, вот как вы можете это сделать (примечание: это для перечислений, что представленных Int значений, предназначенных, чтобы воспользоваться поразрядным operatations):
сначала введите параметры перечисления вместе со своими значениями в словаре.
var all_options_dic = typeof(TestEnum).GetEnumValues().Cast<object>().ToDictionary(k=>k.ToString(), v=>(int) v);
Отфильтровать словарь, чтобы возвращать только смешанные варианты.
var filtered = all_options_dic.Where(x => (x.Value & (int) options) != 0).ToDictionary(k=>k.Key, v=>v.Value);
выполнить любую логику с вашими вариантами. например распечатывая их, превращая их в Список и т. д.:
foreach (var key in filtered.Keys)
{
Console.WriteLine(key + " = " + filtered[key]);
}
надеюсь, что это поможет.
Ваши комментарии: В контексте, где вы в каком-либо смысле «имеете» значение «TestEnum.TestOne», вы уже имеете * значение «3». Что у вас на самом деле? – AakashM