我想生成可能产生特定枚举值的枚举字段的最短(或最短之一)组合。完成此任务的最佳算法是什么?
例如,假设我有枚举:
enum MyEnum
{
One = 1,
Two = 2,
Three = One | Two,
Four = 4,
Six = Two | Four,
Eight = 8,
All = One | Two | Four | Eight
}
现在例如对于7
我希望我的函数输出的值"One | Six"
或"Three | Six"
。
编辑:当然Three | Four
也是一个有效的输出。