Maison >développement back-end >C++ >Comment convertir une chaîne en énumération en C #?

Comment convertir une chaîne en énumération en C #?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-02-02 00:41:18762parcourir

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

Dans le C #, la chaîne est convertie en énumération

payer une énumération de la chaîne

Lors du traitement de la balise HTML SELECT avec la valeur d'énumération, vous devez convertir la valeur de chaîne sélectionnée en valeur d'énumération correspondante. En C #, la méthode de conversion préférée est

. Enum.TryParse

<code class="language-csharp">Enum.TryParse("Active", out StatusEnum myStatus);</code>
Pour .NET Core et .NET Framework 4.0, il a nécessité une grammaire plus longue:

<code class="language-csharp">StatusEnum myStatus = (StatusEnum)Enum.Parse(typeof(StatusEnum), "Active", true);</code>
Méthode d'expansion d'analyse d'énumération personnalisée

Pour la commodité, vous pouvez créer une méthode d'extension personnalisée pour simplifier le processus d'analyse, tel que:

<code class="language-csharp">public static T ParseEnum<T>(string value) => (T)Enum.Parse(typeof(T), value, true);</code>
Cette méthode d'extension vous permet d'écrire:

<code class="language-csharp">StatusEnum myStatus = ParseEnum<StatusEnum>("Active");</code>
Traitement Valeur d'énumération non valide

Afin de traiter la valeur de la chaîne n'est pas une valeur d'énumération efficace, vous pouvez ajouter une reconnaissance silencieuse à la méthode

: 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>
Cela vous permet d'utiliser la syntaxe suivante:

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn