Ну, кроме Option1
, не имеющего особого смысла в перечислении flags, это просто работает по умолчанию, используя Enum.Parse
и Enum.ToString()
.
Начните с этого:
var options = MyEnum.Option2 | MyEnum.Option3;
Console.WriteLine(options.ToString());
// Outputs: Option2, Option3
Тогда вы всегда можете сделать это:
var options2 = (MyEnum) Enum.Parse(typeof (MyEnum), "Option2, Option3");
Теперь попробуйте это:
Console.WriteLine((options2 & MyEnum.Option2) == MyEnum.Option2);
Console.WriteLine((options2 & MyEnum.Option4) == MyEnum.Option4);
// Outputs:
// true
// false
Кажется, что это именно то, что вы хотели (опять же, игнорируя тот факт, что Option1 в вашемпример никогда не появится)
документы: Enum.Parse