📅  最后修改于: 2023-12-03 14:39:45.046000             🧑  作者: Mango
在C#中,可以通过字符串来获取对应的枚举值。本文将介绍如何在C#中实现这个功能。
C#中的Enum类提供了TryParse方法,该方法可以将字符串转换为枚举值。下面是使用Enum.TryParse方法获取枚举值的示例代码:
string enumString = "枚举值名称";
Enum.TryParse(enumString, out EnumType enumValue);
其中,enumString
是要转换的枚举值的字符串表示,EnumType
是枚举类型,enumValue
是转换后的枚举值。如果转换成功,enumValue
将包含转换后的枚举值,否则enumValue
将为默认的枚举值。
注意:在使用Enum.TryParse方法时,需要确保枚举类型是有效的。如果传入的字符串不是有效的枚举值,则转换会失败。
除了使用Enum.TryParse方法外,还可以使用Enum.Parse方法来获取枚举值。下面是使用Enum.Parse方法获取枚举值的示例代码:
string enumString = "枚举值名称";
EnumType enumValue = (EnumType)Enum.Parse(typeof(EnumType), enumString);
其中,enumString
是要转换的枚举值的字符串表示,EnumType
是枚举类型。通过调用Enum.Parse方法,将enumString
转换为枚举类型EnumType
的枚举值。
需要注意的是,在使用Enum.Parse方法时,需要确保传入的字符串是有效的枚举值,否则会抛出异常。
下面是一个完整的示例,演示了如何从字符串中获取枚举值:
using System;
public enum Color
{
Red,
Green,
Blue
}
class Program
{
static void Main(string[] args)
{
string colorString = "Green";
// 使用Enum.TryParse方法
Color color;
bool result = Enum.TryParse(colorString, out color);
if (result)
{
Console.WriteLine($"Enum.TryParse方法获取的枚举值:{color}");
}
else
{
Console.WriteLine("转换失败");
}
// 使用Enum.Parse方法
try
{
color = (Color)Enum.Parse(typeof(Color), colorString);
Console.WriteLine($"Enum.Parse方法获取的枚举值:{color}");
}
catch (Exception ex)
{
Console.WriteLine("转换失败:" + ex.Message);
}
}
}
输出结果:
Enum.TryParse方法获取的枚举值:Green
Enum.Parse方法获取的枚举值:Green
在示例中,我们定义了一个颜色枚举类型Color,然后通过字符串"Green"获取了对应的枚举值,并输出了结果。
以上就是在C#中从字符串中获取枚举值的两种方法。使用Enum.TryParse方法可以避免在转换失败时抛出异常,而使用Enum.Parse方法则更加简洁。根据实际情况选择合适的方法来获取枚举值即可。