从特定号码获取枚举

DIl*_*d K 1 c# enums

enum喜欢这个:

   enum Numbers
    {
        SmallerThenThree = 3,
        SmallerThenFive = 5,
        SmallerThenTen = 10,
    }
Run Code Online (Sandbox Code Playgroud)

是否有可能获得enum具体数量的项目?例如 :

 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
Run Code Online (Sandbox Code Playgroud)

Kla*_*ter 8

你可以使用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
Run Code Online (Sandbox Code Playgroud)