方法1:使用Enum.Parse
和Convert.ToInt32
using System;
public enum MyEnum
{
Value1,
Value2,
Value3
}
class Program
{
static void Main()
{
string enumName = "Value2"; // 假设这是你要转换的字符串
MyEnum myEnumValue = (MyEnum)Enum.Parse(typeof(MyEnum), enumName); // 将字符串转换为枚举
int enumIntValue = Convert.ToInt32(myEnumValue); // 将枚举转换为整数
Console.WriteLine(enumIntValue); // 输出整数
}
}
方法2:直接将Enum.Parse
的结果转换为int
using System;
public enum MyEnum
{
Value1,
Value2,
Value3
}
class Program
{
static void Main()
{
string enumName = "Value2"; // 假设这是你要转换的字符串
int enumIntValue = (int)Enum.Parse(typeof(MyEnum), enumName); // 直接将字符串转换为枚举,然后转换为整数
Console.WriteLine(enumIntValue); // 输出整数
}
}
在这两个例子中,我们都是通过字符串enumName
来获取枚举的整数值。第一个例子中,我们首先将字符串转换为枚举类型,然后再转换为整数。第二个例子中,我们直接将Enum.Parse
的结果转换为整数,这是一个更直接的方法。
请注意,如果字符串不是枚举的有效名称,Enum.Parse
方法将抛出一个ArgumentException
异常。因此,在实际应用中,你可能需要添加异常处理来确保程序的健壮性。例如:
try
{
int enumIntValue = (int)Enum.Parse(typeof(MyEnum), enumName);
Console.WriteLine(enumIntValue);
}
catch (ArgumentException ex)
{
Console.WriteLine("错误:" + ex.Message);
}
这样,如果enumName
不是MyEnum
枚举的有效成员,程序将捕获异常并输出错误信息,而不是崩溃。