猿问
迭代Flags Enum中的值?
如果我有一个包含标志枚举的变量,我可以以某种方式迭代该特定变量中的位值吗?或者我是否必须使用Enum.GetValues迭代整个枚举并检查哪些枚举?
摇曳的蔷薇
浏览 462
回答 3
3回答
慕哥9229398
static IEnumerable<Enum> GetFlags(Enum input){ foreach (Enum value in Enum.GetValues(input.GetType())) if (input.HasFlag(value)) yield return value;}
0
0
0
冉冉说
这是问题的Linq解决方案。public static IEnumerable<Enum> GetFlags(this Enum e){ return Enum.GetValues(e.GetType()).Cast<Enum>().Where(e.HasFlag);}
0
0
0
随时随地看视频
慕课网APP
相关分类
C#
typedef入门问题
1 回答
我要回答