在两个枚举值之间交替

时间:2016-05-09 16:38:23

标签: c# enums

我有一个枚举,我希望在满足条件时在两个值之间交替。目前,我使用if / else来交换值,但是有一些更好的单行方式吗?

if (myEnum == MyEnum.Val1) 
    myEnum = MyEnum.Val2
else 
    myEnum = MyEnum.Val1; 

3 个答案:

答案 0 :(得分:1)

您可以使用三元操作https://msdn.microsoft.com/en-us/library/zakwfxx4(v=vs.90).aspx

myEnum = myEnum == MyEnum.Val1 ? MyEnum.Val2 : MyEnum.Val1;

如果需要,可以添加括号以便于阅读:

myEnum = (myEnum == MyEnum.Val1) ? MyEnum.Val2 : MyEnum.Val1;

答案 1 :(得分:0)

根据myEnum的值,你可以做一些数学技巧,但你总是可以使用?运算符:

myEnum = myEnum == MyEnum.Val1 ? MyEnum.Val2 : MyEnum.Val1;

答案 2 :(得分:0)

两个值之间的交替通常意味着xoring,那么如何:

myEnum ^= MyEnum.Val1 ^ MyEnum.Val2;