How do I convert a string to an enum value to an integer?
本问题已经有最佳答案,请猛点这里访问。
Possible Duplicate:
How do I Convert a string to an enum in C#?
Enums returning int value
我已经声明了一个枚举:
1 2 3 4 5 6 7 8 | public enum Car { SELECT = 0, AUDI = 1, NISSAN = 2, HONDA = 3, LINCOLN = 4 } |
现在我需要枚举匹配的int值:
1 2 3 4 5 6 7 | private int GetCarType(string CarName) { foreach(var item in Enum.GetNames(typeof(Car)) { if (item.ToLower().Equals(CarName.ToLower())) //return int value of Enum of matched item; ??????? } |
预期结果:
1 2 3 4 | int i = GetCarType(CarName); //suppose CarName is AUDI, it should return 1; Console.write(i); Result :- 1 |
如何获取枚举值?以及更好的编码实践。
如果要将字符串转换为枚举,则应使用Enum.Parse,而不是对名称进行迭代。
然后转换为整数:
1 | var iAsInteger = (Int32)i; |
1 |
http://msdn.microsoft.com/en-us/library/essfb559.aspx
这将取代您的
只需将枚举强制转换为int-like
1 | int i=(int)Car.Audi; |
这会给你1
1 | int i=(int)Car.Select; |
这会给你0
1 |