我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)
你可以使用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)