为了账号安全,请及时绑定邮箱和手机立即绑定

迭代Flags Enum中的值?

迭代Flags Enum中的值?

C#
摇曳的蔷薇 2019-09-02 09:01:07
如果我有一个包含标志枚举的变量,我可以以某种方式迭代该特定变量中的位值吗?或者我是否必须使用Enum.GetValues迭代整个枚举并检查哪些枚举?
查看完整描述

3 回答

?
慕哥9229398

TA贡献1877条经验 获得超6个赞

static IEnumerable<Enum> GetFlags(Enum input)

{

    foreach (Enum value in Enum.GetValues(input.GetType()))

        if (input.HasFlag(value))

            yield return value;

}


查看完整回答
反对 回复 2019-09-02
?
冉冉说

TA贡献1877条经验 获得超1个赞

这是问题的Linq解决方案。


public static IEnumerable<Enum> GetFlags(this Enum e)

{

      return Enum.GetValues(e.GetType()).Cast<Enum>().Where(e.HasFlag);

}


查看完整回答
反对 回复 2019-09-02
  • 3 回答
  • 0 关注
  • 440 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信