How to get next (or previous) enum value in C#

后端 未结 24 1950
深忆病人
深忆病人 2020-12-04 10:59

I have an enum which is defined like this:

public enum eRat { A = 0, B=3, C=5, D=8 };

So given value eRat.B, I want to get the

24条回答
  •  爱一瞬间的悲伤
    2020-12-04 11:26

    Do you really need to generalize this problem? Can you just do this instead?

    public void SomeMethod(MyEnum myEnum)
    {
        MyEnum? nextMyEnum = myEnum.Next();
    
        if (nextMyEnum.HasValue)
        {
            ...
        }
    }
    
    public static MyEnum? Next(this MyEnum myEnum)
    {
        switch (myEnum)
        {
            case MyEnum.A:
                return MyEnum.B;
            case MyEnum.B:
                return MyEnum.C;
            case MyEnum.C:
                return MyEnum.D;
            default:
                return null;
        }
    }
    

提交回复
热议问题