У меня есть перечисление, которое определяется как:
[Flags]
public enum MyEnum
{
None = 0,
ValueOne = 1 << 0,
ValueTwo = 1 << 1,
ValueThree = 1 << 2,
ValueFour = 1 << 3,
...
ValueTwoEightyOne = 1 << 280,
}
Я хотел бы иметь возможность преобразовать использование в самую короткую возможную строку, например:
var compressedString = ConvertToCompressedString(MyEnum.ValueOne | MyEnum.ValueThree | MyEnum.ValueFour);
И затемв другой части программы я хотел бы преобразовать сжатую строку обратно в перечисление
var enumValue = ConvertBack(compressedString);
Каков эффективный метод преобразования перечисления с таким количеством значений?Если есть лучший способ работы с этим типом сценария использования, я заинтересован.