首頁 > 後端開發 > C++ > 如何將字符串轉換為C#中的枚舉?

如何將字符串轉換為C#中的枚舉?

Mary-Kate Olsen
發布: 2025-02-02 00:41:18
原創
665 人瀏覽過

How to Convert a String to an Enum in C#?

在 C# 中將字符串轉換為枚舉

從字符串解析枚舉

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板