Getting common flags enum value in c#

前端 未结 4 1943
长发绾君心
长发绾君心 2021-01-23 10:45

Say I have the below enum

[Flags]
enum Letters
{
     A = 1,
     B = 2,
     C = 4,
     D = 8,
     E = 16,
     F = 32,
     AB = A | B,
     All = A | B | C,         


        
4条回答
  •  南笙
    南笙 (楼主)
    2021-01-23 11:26

    If that's suitable for you it will return List of individual flags

     static IEnumerable GetFlags(Enum input)
        {
            foreach (Enum value in Enum.GetValues(input.GetType()))
                if (input.HasFlag(value))
                    yield return value;
        }
    
    GetFlags(s).Intersect(GetFlags(p))
    

提交回复
热议问题