在处理 C# 中的 HTML 表单和枚举时,可能需要将字符串值转换为其对应的枚举值。以下是一些实现此任务的方法:
在 .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中文网其他相关文章!