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

后端 未结 24 1906
深忆病人
深忆病人 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:39

    I'm using this, perfect for my.

        //===================================================================================
    // NEXT VALUE IN ENUM 
    // ex: E_CamModes eNew =  kGlobalsVars.eGetNextValue< E_CamModes >( geCmMode );
    public static T eGetNextValue< T >( T eIn ){
        T[] aiAllValues = ( T[] ) Enum.GetValues( typeof( T ));
        int iVal = System.Array.IndexOf( aiAllValues, eIn );
        return aiAllValues[ ( iVal + 1 ) % aiAllValues.Length ];
    }
    

提交回复
热议问题