當處理包含枚舉值的 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中文網其他相關文章!