【发布时间】:2012-04-24 17:56:25
【问题描述】:
我知道如何遍历枚举属性列表,但我将如何遍历所有“选定”枚举属性?例如,如果有人用Prop1 | Prop2 对抗public enum Foo { Prop1; Prop2; Prop3 },我将如何做到这一点?
这就是我现在拥有的:
var values = Enum.GetValues(typeof(FileStatus)).Cast<FileStatus>();
foreach (var value in values)
{
}
它循环遍历所有枚举属性,但我想只循环“选择”的那些。
更新:[Flags] 属性已设置。
更新 2:枚举包含大量属性,我不能也不会键入/硬编码单个属性检查,而是想动态循环遍历每个属性并检查我的枚举实例 Bar包含循环项集。
【问题讨论】:
-
你把 FlagsAttribute 贴在枚举上了吗?
-
@Hexxagonal:没关系。但是,显式赋值非常重要。
-
@Hexxagonal 这真的比任何事情都更可选。枚举可能是也可能不是两个的幂。标志是否ATT。设置应该很重要,但实际上并不重要。
-
这个问题正在Meta讨论。
标签: c#