如何将字符串转换为枚举值为整数?

可能重复:
如何将字符串转换为C#中的枚举?
枚举返回int值

我已经声明了一个枚举: -

public enum Car
        {
            SELECT = 0,
            AUDI = 1,
            NISSAN = 2,
            HONDA = 3,
            LINCOLN = 4
        } 

现在我需要enum的int值,它匹配: -

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; ???????
            }

预期结果: -

int i = GetCarType(CarName); //suppose CarName is AUDI, it should return 1;
Console.write(i);

Result :- 1

我将如何获得枚举的价值? 更好的编码实践。


var result = (int)System.Enum.Parse(typeof(Car), carName)

http://msdn.microsoft.com/en-us/library/essfb559.aspx

这取代了你的GetCarType功能。 您不必再遍历枚举名称。


如果要将字符串转换为枚举,则应该使用Enum.Parse而不是迭代名称。

然后只需转换成一个整数:

var iAsInteger = (Int32)i;

简单地把你的枚举像int一样

int i=(int)Car.Audi;

这会给你1

int i=(int)Car.Select;

这会给你0

链接地址: http://www.djcxy.com/p/91783.html

上一篇: How do I convert a string to an enum value to an integer?

下一篇: Enum to int best practice