如何从一系列数字中获取输入数据的类型,并将其与c#中的Enum相结合?我想避免使用if / else,将其移动到某种范围,也许使用IsDefined?
[Flags]
public enum PaymentCodeTypes
{
Other = 1,
Warranty = 2,
Contract = 4
}
var PaymentCodeType = 0;
if (paymentCode >= 80 && paymentCode <= 89)
{
PaymentCodeType = (int) PaymentCodeTypes.Contract;
}
else if (paymentCode >= 90 && paymentCode <= 99)
{
PaymentCodeType = (int) PaymentCodeTypes.Warranty;
} else
{
PaymentCodeType = (int)PaymentCodeTypes.Other;
}
您可以使用C#8中添加的switch
expression:
switch
如果要使其更短,则牺牲了可维护性:
var PaymentCodeType = (int)(paymentCode switch {
var x when x >= 80 && x <= 89 => PaymentCodeTypes.Contract,
var x when x >= 90 && x <= 99 => PaymentCodeTypes.Warranty,
_ => PaymentCodeTypes.Other
});