Enumerare le stringhe in C#

Muhammad Maisam Abbas 16 febbraio 2024
  1. Crea enumerazione di stringhe con funzione di estensione in C#
  2. Crea enumerazione di stringhe con variabili costanti in C#
  3. Crea enumerazione di stringhe con la funzione ToString() in C#
Enumerare le stringhe in C#

Questo tutorial introdurrà metodi per creare un’enumerazione di stringhe in C#.

Crea enumerazione di stringhe con funzione di estensione in C#

Un’enumerazione è un insieme predefinito di valori costanti che una variabile può memorizzare. La classe enum viene utilizzata per dichiarare un’enumerazione in C#. Per impostazione predefinita, il tipo di variabili all’interno della classe enum è int. Non esiste un metodo integrato per dichiarare un’enumerazione con valori stringa. Se vogliamo dichiarare un’enumerazione con costanti stringa, possiamo usare la classe enum e una funzione di estensione per raggiungere questo obiettivo. Il seguente esempio di codice ci mostra come creare un’enumerazione di valori stringa con la classe enum e la funzione di estensione in C#.

using System;

namespace enum_with_string {
  public enum ErrorLevel { None, Low, Medium, High }

  public static class ErrorLevelExtensions {
    public static string GetString(this ErrorLevel me) {
      switch (me) {
        case ErrorLevel.None:
          return "NO ERRORS";
        case ErrorLevel.Low:
          return "LOW LEVEL ERROR";
        case ErrorLevel.Medium:
          return "MEDIUM LEVEL ERROR";
        case ErrorLevel.High:
          return "HIGH LEVEL ERROR";
        default:
          return "NO VALUE GIVEN";
      }
    }
  }
  class Program {
    static void Main(string[] args) {
      ErrorLevel e = ErrorLevel.None;
      string output = e.GetString();
      Console.WriteLine(output);
    }
  }
}

Produzione:

NO ERRORS

Abbiamo dichiarato l’enumerazione ErrorLevel con i valori costanti None, Low, Medium, High con la parola chiave enum. Quindi abbiamo creato la funzione di estensione GetString() che utilizza un’istruzione switch() per determinare il valore dell’enumerazione e restituire una stringa in base al valore. Il risultato della funzione GetString() viene salvato nella stringa output.

Crea enumerazione di stringhe con variabili costanti in C#

Possiamo anche ottenere la funzionalità di un’enumerazione inizializzando alcune variabili costanti all’interno di una classe in C#. La parola chiave const specifica che una variabile è ora costante e non è possibile modificarne il valore. L’esempio di codice seguente mostra come creare un’enumerazione di stringhe con variabili costanti in C#.

using System;

namespace enum_with_string {
  public static class Error {
    public const string None = "No Errors";
    public const string Low = "Low Level Errors";
    public const string Medium = "Medium Level Errors";
    public const string High = "High Level Errors";
  }
  class Program {
    static void Main(string[] args) {
      String output = Error.Low;
      Console.WriteLine(output);
    }
  }
}

Produzione:

Low Level Errors

Abbiamo dichiarato una public static class denominata Error e inizializzato tutte le variabili public const string all’interno della classe. Il motivo per mantenere la classe static è che non vogliamo creare un’istanza della classe Error all’interno della funzione main(). Abbiamo memorizzato il valore di Error.Low all’interno della variabile stringa output. Questo approccio è molto più semplice e di facile comprensione. La stessa cosa può essere fatta anche con una struttura con la parola chiave struct al posto della parola chiave class.

Crea enumerazione di stringhe con la funzione ToString() in C#

Questo è un metodo improvvisato per convertire i nomi dei valori all’interno dell’enumerazione in stringa in C#. Possiamo usare la funzione ToString() con l’istanza di un’enumerazione per convertire il nome del valore all’interno dell’enumerazione in una stringa. Il seguente esempio di codice ci mostra come creare un’enumerazione di stringhe con la funzione ToString() in C#.

using System;

namespace enum_with_string {
  public enum ErrorLevel { None, Low, Medium, High }
  class Program {
    static void Main(string[] args) {
      ErrorLevel e = ErrorLevel.None;
      string output = e.ToString();
      Console.WriteLine(output);
    }
  }
}

Produzione:

None

Abbiamo convertito il nome None all’interno dell’enumerazione ErrorLevel in una stringa con la funzione ToString() in C#. Questo metodo è facile da usare, ma presenta alcuni inconvenienti. Non possiamo ottenere il valore Low Level Errors come i nostri esempi precedenti con questo approccio. Dobbiamo seguire le convenzioni di denominazione di C# in questo approccio. Questo metodo è consigliabile solo se vogliamo creare un’enumerazione di sole stringhe composte da una sola parola. Per qualsiasi altra cosa, dovremmo usare uno dei due modi discussi sopra.

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

Articolo correlato - Csharp String

Articolo correlato - Csharp Enum