有这样一个枚举:
[Flags]
public enum TypeMoEnum : long
{
[EnumMember]
NotDefined = 0,
[EnumMember]
MO = 1,
[EnumMember]
Federal = 2,
[EnumMember]
Laboratory = 4,
[EnumMember]
CallCentre = 8,
[EnumMember]
ForRouteCard = 16
}
您需要获得确定所选成员是否存在的所有可能的数字组合ForRouteCard。如何实施?
UPD:条件 >= 16 将不起作用,因为 可以添加 enam 32.64 等的其他成员
假设 TypeMoEnum.ForRouteCard 是枚举中的最后一个标志,并且只需要迭代映射到枚举的值:
如果标志不是最后一个,那么
http://ideone.com/Ptvgnu
如果最终目标是从设置了适当标志的数据库中获取数据 - 使用 bitwise
И:结论:
查询中的使用示例:
结论:
您甚至可以想到一种方法或扩展方法来检查传入参数的标志,但现在我不会给出代码,因为没有什么可以检查可能的细微
Expression<>差别IQueryable