Для вашего требования это так же просто, как люди уже указали.Просто приведите объект enum к int, и вы получите числовое значение перечисления.
int value = (int) TestEnum.TestOne;
Однако, если необходимо смешать значения перечисления с |(побитовое ИЛИ), например,
var value = TestEnum.TestOne | TestEnum.TestTwo;
, и вы хотите получить, какие опции представляет смешанное значение, вот как вы можете это сделать (примечание: это для перечислений, представленных значениями int, предназначенными дляпреимущество побитовых операций):
сначала получите параметры enum вместе со своими значениями в словаре.
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]);
}
надеюсь, это поможет.