📜  如何将字符串转换为枚举? - C# (1)

📅  最后修改于: 2023-12-03 15:38:45.547000             🧑  作者: Mango

如何将字符串转换为枚举? - C#

在C#中,枚举类型是一种用于定义命名常量的强类型值类型。有时候,我们需要将字符串转换为枚举类型,这时候我们可以使用以下方法:

1.使用Enum.Parse方法

Enum.Parse方法可以将字符串转换为枚举类型。以下是转换的示例代码:

string strValue = "Monday";
DayOfWeek day;

try
{
    day = (DayOfWeek)Enum.Parse(typeof(DayOfWeek), strValue);
}
catch (ArgumentException ex)
{
    // 如果转换失败,我们可以在此处处理异常
}

在上面的代码中,我们使用typeof(DayOfWeek)将枚举类型传递给Enum.Parse方法,将字符串"Monday"转换为DayOfWeek类型。

2.使用Enum.TryParse方法

如果您不想处理异常,您可以使用Enum.TryParse方法。以下是示例代码:

string strValue = "Monday";
DayOfWeek day;

if (Enum.TryParse(strValue, out day))
{
    // 转换成功
}
else
{
    // 转换失败
}

在上面的示例代码中,我们使用Enum.TryParse方法将字符串"Monday"转换为DayOfWeek类型day,如果没有异常,它将返回true,否则返回false

3.使用自定义方法

有时候,需要将字符串转换为枚举类型时,您可以创建自定义方法来解决问题。以下是处理方法的示例代码:

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种将字符串转换为枚举类型的方法。您可以根据需求选择适合您的方法。