在Int32和enum之间转换

时间:2014-01-21 19:06:37

标签: c# type-conversion

我有一个名为ScaleGroup的自定义类型。我试图解析数据(完成)然后将其转换为ScaleGroup进行比较。 ScaleGroup是enum。我在网上发现了这种转换方法,但它没有用。我怎样才能获得转换?

这是我的类型声明

public ScaleGroup ScaleGroup { get; set; }

我需要将其从Int32更改为ScaleGroup

int num = Convert.ToInt32(ld.ScaleGroup);
int secondDigit = num % 10;
ld.ScaleGroup = (ScaleGroup)Convert.ChangeType(
       secondDigit, typeof(ScaleGroup));//problem spot

ScaleGroup声明:

public enum ScaleGroup
{
    GROUP_1 = 1,
    GROUP_2 = 2,
    BOTH = 3
}

1 个答案:

答案 0 :(得分:3)

既然我们知道ScaleGroup 不是类,而是枚举,那很简单:

int num = (int) ld.ScaleGroup;
int secondDigit = num % 10;
ld.ScaleGroup = (ScaleGroup) secondDigit;

(我不清楚,根据你的枚举声明,这实际上是你想要的,但这将执行相关的转换...)