Heim >Backend-Entwicklung >C++ >Wie konvertiere ich eine Zeichenfolge in eine Aufzählung in C#?

Wie konvertiere ich eine Zeichenfolge in eine Aufzählung in C#?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2025-02-02 00:41:18666Durchsuche

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

In der C#wird die Zeichenfolge in die Aufzählung

konvertiert

zahlen Sie eine Aufzählung aus der Zeichenfolge

Bei der Verarbeitung des HTML -Auswahl -Tags mit dem Aufzählungswert müssen Sie den ausgewählten Zeichenfolgenwert in den entsprechenden Aufzählungswert konvertieren. In C#lautet die bevorzugte Konvertierungsmethode Enum.TryParse.

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

Für .NET Core und .NET Framework 4.0 erforderte eine längere Grammatik:

<code class="language-csharp">StatusEnum myStatus = (StatusEnum)Enum.Parse(typeof(StatusEnum), "Active", true);</code>

Customized Enumerationsanalyse -Expansionsmethode

Aus Gründen der Bequemlichkeit können Sie eine benutzerdefinierte Erweiterungsmethode erstellen, um den Analyseprozess zu vereinfachen, wie z. B.

<code class="language-csharp">public static T ParseEnum<T>(string value) => (T)Enum.Parse(typeof(T), value, true);</code>

Mit dieser Erweiterungsmethode können Sie schreiben:

<code class="language-csharp">StatusEnum myStatus = ParseEnum<StatusEnum>("Active");</code>

Verarbeitung ungültiger Aufzählungswert

verarbeiten

Um den String -Wert zu verarbeiten, ist es kein effektiver Aufzählungswert, Sie können der ParseEnum -Methode eine stille Erkennung hinzufügen:

<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>

Ermöglicht Ihnen die folgende Syntax:

<code class="language-csharp">StatusEnum myStatus = "Active".ToEnum(StatusEnum.None);</code>

Das obige ist der detaillierte Inhalt vonWie konvertiere ich eine Zeichenfolge in eine Aufzählung in C#?. 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