Get int value from enum in C#

c#, casting, enums, int

Solution

Just cast the enum, e.g.

int something = (int) Question.Role;

The above will work for the vast majority of enums you see in the wild, as the default underlying type for an enum is `int`.

However, as cecilphillip points out, enums can have different underlying types. If an enum is declared as a `uint`, `long`, or `ulong`, it should be cast to the type of the enum; e.g. for

enum StarsInMilkyWay:long {Sun = 1, V645Centauri = 2 .. Wolf424B = 2147483649};

you should use

long something = (long)StarsInMilkyWay.Wolf424B;

Problem

I have a class called `Questions` (plural). In this class there is an enum called `Question` (singular) which looks like this. ``` public enum Question { Role = 2, ProjectFunding = 3, TotalEmployee = 4, NumberOfServers = 5, TopBusinessConcern = 6 } ``` In the `Questions` class I have a `get(int foo)` function that returns a `Questions` object for that `foo`. Is there an easy way to get the integer value off the enum so I can do something like this `Questions.Get(Question.Role)`?

Original source

Related problems