2012-02-21 102 views
7

我有一个enum这样的:如何获得枚举自定义值?

public enum ProductGroup 
{ 
    A = 1, 
    B = 2, 
    C = 4, 
    D = 8 
} 

我怎样才能得到ProductGroup枚举值?例如,当我的枚举值是ProductGroup.C时,我想得到它的值4;

回答

12

只需将其投射为int即可获取索引值。

所以:

ProductGroup productGroup = ProductGroup.C; 

Int32 productGroupIndex = (Int32)productGroup; 

在上述例子中,productGroupIndex == 4

+1

只为信息,不需要额外的临时的变量在这里........你可以直接做 – 2012-02-21 13:33:53

+0

“当我的枚举值是...” - 来回在这里,我假定它是需要投射的ProductGroup枚举的一个实例。 – 2012-02-21 16:02:47

4
ProductGroup pg = ProductGroup.C; 
Console.Write((int)pg); 
6

只投枚举

int val = (int)ProductGroup.A; 
0

您可以转换/施放的枚举:

int productGroup = Convert.ToInt32(ProductGroup.C); 

int productGroup = (int)ProductGroup.C;