首页 >后端开发 >C++ >如何将字符串解析为C#中的枚举?

如何将字符串解析为C#中的枚举?

Susan Sarandon
Susan Sarandon原创
2025-02-02 00:32:10794浏览

How to Parse a String into an Enum in C#?

在 C# 中将字符串解析为枚举

在处理 C# 中的 HTML 表单和枚举时,可能需要将字符串值转换为其对应的枚举值。以下是一些实现此任务的方法:

通用解析方法(.NET Core 和 .NET Framework 4.0 )

在 .NET Core 和 .NET Framework 4.0 及更高版本中,可以使用通用的解析方法:

<code class="language-csharp">bool statusSuccess = Enum.TryParse("Active", out StatusEnum myStatus);</code>

简化解析方法

如果您无法访问最新的 .NET 版本,您可以创建一个简化的解析例程:

<code class="language-csharp">public static T ParseEnum<T>(string value)
{
    return (T)Enum.Parse(typeof(T), value, true);
}

StatusEnum myStatus = EnumUtil.ParseEnum<StatusEnum>("Active");
// 或
StatusEnum myStatus = "Active".ToEnum<StatusEnum>();</code>

带有默认值的方法

如果字符串可能不是有效的枚举值,您可以在解析方法中提供一个默认值:

<code class="language-csharp">public static T ToEnum<T>(this string value, T defaultValue)
{
    if (value == null || value == "")
        return defaultValue;

    T result;
    return Enum.TryParse<T>(value, true, out result) ? result : defaultValue;
}

StatusEnum myStatus = "Active".ToEnum(StatusEnum.None);</code>

请记住,在修改像字符串类这样的核心类时,谨慎使用扩展方法,因为它会影响该类的所有实例,而不管其上下文如何。

以上是如何将字符串解析为C#中的枚举?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn