Convertir Enum en chaîne en C#

Muhammad Maisam Abbas 12 octobre 2023
  1. Convertir Enum en String avec l’attribut Description en C#
  2. Convertir Enum en String avec l’instruction switch en C#
Convertir Enum en chaîne en C#

Ce didacticiel abordera les méthodes pour convertir une énumération en chaîne en C#.

Convertir Enum en String avec l’attribut Description en C#

Nous n’avons pas besoin d’utiliser quoi que ce soit pour le convertir en chaîne pour une simple valeur Enum qui respecte les conventions de dénomination. Il peut être affiché à l’utilisateur avec la fonction Console.WriteLine() en C#. Cela est démontré dans l’exemple de codage ci-dessous.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace enum_to_string {
  public enum Status { InProgress, Completed }
  class Program {
    static void Main(string[] args) {
      Status complete = Status.Completed;
      Console.WriteLine(complete);
    }
  }
}

Production:

Completed

Dans le code ci-dessus, nous avons directement imprimé la valeur Enum Completed au format chaîne en C#. Cela était possible car notre valeur Enum suivait les conventions de dénomination des variables en C#. Mais si nous voulons afficher une chaîne facile à lire, nous devons utiliser l’attribut Description des Enums en C#. L’attribut Description est utilisé pour décrire chaque valeur d’un Enum. Nous pouvons convertir notre Enum en une chaîne facile à lire en écrivant la chaîne à l’intérieur de l’attribut Description de Enum. L’exemple de code suivant nous montre comment convertir une valeur Enum en une chaîne avec l’attribut Description en C#.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Reflection;

namespace enum_to_string {
  public enum Status {
    [Description("The Desired Task is InProgress")] InProgress,
    [Description("The Desired Task is Successfully Completed")] Completed
  }
  static class extensionClass {
    public static string getDescription(this Enum e) {
      Type eType = e.GetType();
      string eName = Enum.GetName(eType, e);
      if (eName != null) {
        FieldInfo fieldInfo = eType.GetField(eName);
        if (fieldInfo != null) {
          DescriptionAttribute descriptionAttribute = Attribute.GetCustomAttribute(
              fieldInfo, typeof(DescriptionAttribute)) as DescriptionAttribute;
          if (descriptionAttribute != null) {
            return descriptionAttribute.Description;
          }
        }
      }
      return null;
    }
  }
  class Program {
    static void Main(string[] args) {
      Status complete = Status.Completed;
      string description = complete.getDescription();
      Console.WriteLine(description);
    }
  }
}

Production:

The Desired Task is Successfully Completed

Dans le code ci-dessus, nous avons créé une méthode d’extension, getDescription, qui renvoie la description de la valeur Enum en C#. Cette méthode fonctionne parfaitement bien, mais elle est un peu complexe. Cette complexité est simplifiée dans la section suivante.

Convertir Enum en String avec l’instruction switch en C#

Une grande partie de la complexité de la méthode précédente peut être simplifiée en utilisant l’instruction switch en C#. Nous pouvons attribuer la valeur souhaitée à notre variable chaîne pour chaque valeur Enum avec l’instruction switch en C#. Consultez l’exemple de code suivant.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Reflection;

namespace enum_to_string {
  public enum Status { InProgress, Completed }
  static class extensionClass {
    public static string getValue(this Status e) {
      switch (e) {
        case Status.InProgress:
          return "The Desired Task is InProgress";
        case Status.Completed:
          return "The Desired Task is Successfully Completed";
      }
      return String.Empty;
    }
  }
  class Program {
    static void Main(string[] args) {
      Status complete = Status.Completed;
      string value = complete.getValue();
      Console.WriteLine(value);
    }
  }
}

Production:

The Desired Task is Successfully Completed

Dans le code ci-dessus, nous avons créé une méthode d’extension, getValue(), qui retourne une chaîne basée sur la valeur Enum en utilisant l’instruction switch en C#. La fonction getValue() utilise l’instruction switch et renvoie une chaîne différente pour chaque valeur de notre Enum spécifié.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

Article connexe - Csharp Enum

Article connexe - Csharp String