我有一个枚举宽度说明:
public enum PostTypes {
[Description("Business")]
Business = 1 << 0,
[Description("Design"]
Design = 1 << 1,
[Description("Marketing")]
Marketing = 1 << 2,
} // PostTypes
我想基于描述得到一个枚举,所以:
1 - 如果我有String =&#34; Business&#34;我会得到PostTypes.Business。
2 - 如果我有String [] = new String [] {&#34; Business&#34;,&#34; Design&#34;我会有PostTypes.Business | PostTypes.Design。
更新
我使用以下内容:
Enum.GetValues(typeof(PostTypes)).Cast<PostTypes>().Where(v => new String[] { "Business", "Design" }.Contains(v.GetDescription())).Aggregate((a, b) => a | b);
这甚至适用于Flag枚举和字符串数组。
请有人帮助我创建一个扩展,我传递枚举类型并使用func设置搜索规则,可以是Description属性或任何其他。
我该怎么做?
谢谢你, 米格尔