Heim >Backend-Entwicklung >C++ >Wie kann man Strings effizient in C#in Enums konvertieren?

Wie kann man Strings effizient in C#in Enums konvertieren?

Patricia Arquette
Patricia ArquetteOriginal
2025-02-02 00:36:17536Durchsuche

How to Efficiently Convert Strings to Enums in C#?

Die beste Praxis der Zeichenfolge zur Aufzählungsumwandlung in der Aufzählung

In der C# -Entwicklung ist die Konvertierung von String in den Aufzählungswert eine gemeinsame Aufgabe. In diesem Artikel wird der effektivste Weg untersucht, um diese Konvertierung zu erreichen.

Found TryParse -Methode

Ausgehend von .NET Core und .NET Framework ≥4.0 können Sie die genealistische Methode verwenden, um die Aufzählung aufzulösen:

Diese Methode versucht nicht nur, die Zeichenfolge als Aufzählungswert zu beheben, sondern umzuwandeln sie auch in einen expliziten Aufzählungstyp und weist ihn der Mystatus -Variablen zu.

<code class="language-csharp">Enum.TryParse("Active", out StatusEnum myStatus);</code>
ParseeeXtsion/tenumextexsion Expansionsmethode

Für die ältere Version des .NET -Frameworks kann die benutzerdefinierte Erweiterungsmethode den Analyseprozess vereinfachen:

wie man verwendet:

oder Sie können die ZENUM -Erweiterungsmethode verwenden:
<code class="language-csharp">public static T ParseEnum<T>(string value)
{
    return (T)Enum.Parse(typeof(T), value, true);
}</code>

Verarbeitung des Standardwerts
<code class="language-csharp">StatusEnum MyStatus = EnumUtil.ParseEnum<StatusEnum>("Active");</code>

Um den Standard -Aufzählungswert bei Ausfall der Konvertierung anzugeben, können Sie die Erweiterungsmethode mit dem Standardparameter verwenden:
<code class="language-csharp">public static T ToEnum<T>(this string value)
{
    return (T)Enum.Parse(typeof(T), value, true);
}

StatusEnum MyStatus = "Active".ToEnum<StatusEnum>();</code>

wie man verwendet:

Vorsichtsmaßnahmen

<code class="language-csharp">public static T ToEnum<T>(this string value, T defaultValue)
{
    if (string.IsNullOrEmpty(value))
    {
        return defaultValue;
    }

    T result;
    return Enum.TryParse<T>(value, true, out result) ? result : defaultValue;
}</code>
Obwohl die Ausdehnung der String -Klauselklasse wie Zenum bequem aussieht, ist es wichtig, die Integrität der Kernkategorie aufrechtzuerhalten und unnötige Möglichkeiten zu vermeiden, andere Erweiterungen oder Konflikte mit kontextbezogenen Nachfrage zu verwenden. Daher wird empfohlen, eine dedizierte Klasse oder einen Namensraum für die benutzerdefinierte Enum Conversion -Methode zu erstellen.

Das obige ist der detaillierte Inhalt vonWie kann man Strings effizient in C#in Enums konvertieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn