Dilshod K
Dilshod K

Reputation: 3032

Get enum from specific number

I have enum like this :

   enum Numbers
    {
        SmallerThenThree = 3,
        SmallerThenFive = 5,
        SmallerThenTen = 10,
    }

Is it possible get item of enum by specific number? For example :

 var numberFour = 4;
        var enumOfNumber = (Numbers)numberFour; // There should be SmallerThenFive enum type
        var numberSix = 6;
        enumOfNumber = (Numbers)numberSix; // There should be SmallerThenTen enum type

Upvotes: 1

Views: 120

Answers (2)

Klaus Gütter
Klaus Gütter

Reputation: 11977

You can use Reflection:

var number = 4;
var enumValue = (Numbers)Enum.GetValues(typeof(Numbers))
    .Cast<int>()
    .OrderBy(v => v)
    .FirstOrDefault(v => number < v);   

// Note: enumValue will be (Numbers)0 if the value is >= 10

Upvotes: 8

Tabish Matin
Tabish Matin

Reputation: 85

   var value= 4;
 Numbers enumDisplayStatus = (Numbers)value;
    string stringValue = enumDisplayStatus.ToString();

Upvotes: 0

Related Questions