📅  最后修改于: 2023-12-03 15:38:45.547000             🧑  作者: Mango
在C#中,枚举类型是一种用于定义命名常量的强类型值类型。有时候,我们需要将字符串转换为枚举类型,这时候我们可以使用以下方法:
Enum.Parse
方法可以将字符串转换为枚举类型。以下是转换的示例代码:
string strValue = "Monday";
DayOfWeek day;
try
{
day = (DayOfWeek)Enum.Parse(typeof(DayOfWeek), strValue);
}
catch (ArgumentException ex)
{
// 如果转换失败,我们可以在此处处理异常
}
在上面的代码中,我们使用typeof(DayOfWeek)
将枚举类型传递给Enum.Parse
方法,将字符串"Monday"
转换为DayOfWeek
类型。
如果您不想处理异常,您可以使用Enum.TryParse
方法。以下是示例代码:
string strValue = "Monday";
DayOfWeek day;
if (Enum.TryParse(strValue, out day))
{
// 转换成功
}
else
{
// 转换失败
}
在上面的示例代码中,我们使用Enum.TryParse
方法将字符串"Monday"
转换为DayOfWeek
类型day
,如果没有异常,它将返回true
,否则返回false
。
有时候,需要将字符串转换为枚举类型时,您可以创建自定义方法来解决问题。以下是处理方法的示例代码:
public static class EnumHelper
{
public static T Parse<T>(string value)
{
return (T)Enum.Parse(typeof(T), value);
}
public static bool TryParse<T>(string value, out T result)
{
try
{
result = Parse<T>(value);
return true;
}
catch
{
result = default(T);
return false;
}
}
}
在上面的代码中,我们使用泛型方法Parse
将字符串转换为枚举类型。如果转换失败,将使方法抛出异常。使用TryParse
方法时,如果转换失败,将返回false
,否则,将返回转换后的枚举类型。
以上是3种将字符串转换为枚举类型的方法。您可以根据需求选择适合您的方法。