我正在使用带有标记属性的枚举作为跟踪状态的一种方式。
以下是一个例子:
神话般的方法将返回2 - 因为已完成的标志设置了最高值。
我发现这些问题都围绕着实际枚举类型展开,而不是使用标志位的值。我相当肯定这可以用Linq来实现...?
以下是一个例子:
Created = 1
Completed = 2
Dispatched = 4
我希望能够找到已经设置的最高标志,而不需要编写过于死板的代码(如果检查这个,则执行那个操作,如果检查那个,则执行此操作)。例如,在这个例子中:
Item.Status = Status.Created | Status.Completed
神话般的方法将返回2 - 因为已完成的标志设置了最高值。
GetMaxSetFlagValue(Item.Status) // returns 2
我发现这些问题都围绕着实际枚举类型展开,而不是使用标志位的值。我相当肯定这可以用Linq来实现...?