一次检查3个枚举值?

gra*_*ady 1 c# enums

我有一个看起来像这样的枚举:

enum myEnum
{
    field1 = 11,
    field2 = 12,
    field3 = 33
};
Run Code Online (Sandbox Code Playgroud)

在我的代码中,我需要说field1是1,field2是2,field3是3,根据我的变量.这个变量是1或2或3; 这是一个int.我可以写一行吗?像下面的东西,但更短......

if(myVar == 1)
    SomeMethod(myEnum.field1)
...
Run Code Online (Sandbox Code Playgroud)

谢谢 :-)

Fly*_*179 7

(myEnum) Enum.Parse(typeof(myEnum), "field" + myVar);
Run Code Online (Sandbox Code Playgroud)

编辑:想想看,你可能想把它包装在一个try/catch (ArgumentException)公开的枚举中myVar,除非你能保证永远不会发生这种情况.

另一个编辑:想一想,如果只有三个值,你可以这样做:

myVar == 1 ? myEnum.field1 : myVar == 2 ? myEnum.field2 : myEnum.field3;
Run Code Online (Sandbox Code Playgroud)

但是,这会将除1或2之外的任何值视为3,但如果这是保证的,那么它应该不是问题.