当处理包含枚举值的 HTML select 标签时,需要将选定的字符串值转换为相应的枚举值。在 C# 中,首选的转换方法是 Enum.TryParse
。
<code class="language-csharp">Enum.TryParse("Active", out StatusEnum myStatus);</code>
对于 .NET Core 和 .NET Framework 4.0 之前的版本,需要更长的语法:
<code class="language-csharp">StatusEnum myStatus = (StatusEnum)Enum.Parse(typeof(StatusEnum), "Active", true);</code>
为了方便起见,您可以创建自定义扩展方法来简化解析过程,例如:
<code class="language-csharp">public static T ParseEnum<T>(string value) => (T)Enum.Parse(typeof(T), value, true);</code>
此扩展方法允许您编写:
<code class="language-csharp">StatusEnum myStatus = ParseEnum<StatusEnum>("Active");</code>
为了处理字符串值不是有效枚举值的情况,您可以向 ParseEnum
方法添加默认值:
<code class="language-csharp">public static T ToEnum<T>(string value, T defaultValue) { if (string.IsNullOrEmpty(value)) return defaultValue; T result; return Enum.TryParse<T>(value, true, out result) ? result : defaultValue; }</code>
这允许您使用以下语法:
<code class="language-csharp">StatusEnum myStatus = "Active".ToEnum(StatusEnum.None);</code>
以上是如何将字符串转换为C#中的枚举?的详细内容。更多信息请关注PHP中文网其他相关文章!