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

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

Mary-Kate Olsen
Mary-Kate Olsen原創
2025-02-02 00:41:18762瀏覽

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn