如何通过描述值获取枚举?

时间:2014-05-18 16:45:48

标签: c#

我有一个枚举宽度说明:

  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属性或任何其他。

我该怎么做?

谢谢你, 米格尔

0 个答案:

没有答案