The correct way of casting an int to an enum
本问题已经有最佳答案,请猛点这里访问。
Possible Duplicate:
Cast int to Enum in C#
我从数据库中获取一个int值,并希望将该值强制转换为枚举变量。在99.9%的情况下,int将与枚举声明中的一个值匹配
1 2 3 4 5 6 7 8 9 | public enum eOrderType { Submitted = 1, Ordered = 2, InReview = 3, Sold = 4, ... } eOrderType orderType = (eOrderType) FetchIntFromDb(); |
在边缘情况下,该值将不匹配(无论是数据损坏还是有人手动进入并处理数据)。
我可以使用switch语句,捕获
有什么想法吗?
可以使用
1 |
你可以做到
1 2 | int value = FetchIntFromDb(); bool ok = System.Enum.GetValues(typeof(eOrderType)).Cast<int>().Contains(value); |
或者更确切地说,我将缓存getValues()的结果,并使用静态变量进行多次获取。