Преобразование CSV из enum flags и наоборот

Рассмотрим следующее перечисление:

[Flags]
public enum MyEnum
{
    Option1 = 0,
    Option2 = 1,
    Option3 = 2,
    Option4 = 4
}

Есть ли способ, которым я могу получить строковый эквивалент (не значение) как строка CSV? Обычно я могу использовать функцию Enum.GetName для преобразования типа в строковое представление, однако, если вы используете комбинацию, она возвращает null.

Поэтому в основном я хотел бы преобразовать:

var options = MyEnum.Option1 | MyEnum.Option3;

в

"Option1, Option3" 

Тогда я хотел бы иметь возможность преобразовать "Option1, Option3" обратно в MyEnum.Option1 | MyEnum.Option2 .

Предложения?

5
задан James 9 August 2011 в 13:39
поделиться