MC, 2025
Ilustracja do artykułu: C# enum to string - Jak konwertować enum na string w C#?

C# enum to string - Jak konwertować enum na string w C#?

W programowaniu w języku C# bardzo często korzystamy z enumeracji (enum), czyli typu danych, który pozwala na definiowanie zmiennych w postaci nazwanych wartości. Jednym z częstych przypadków użycia jest potrzeba konwersji wartości enum na odpowiadający im tekst (string). W tym artykule przyjrzymy się, jak skutecznie wykonać konwersję C# enum to string, a także przedstawimy przykłady i różne metody osiągnięcia tego celu.

Czym jest enum w C#?

Zanim przejdziemy do konwersji, warto na chwilę zatrzymać się przy definicji typu enum. Enum w C# jest typem wartościowym, który pozwala na zdefiniowanie zmiennej przy użyciu nazwanych stałych. Dzięki temu kod staje się bardziej czytelny i łatwiejszy do zrozumienia, ponieważ zamiast liczb, używamy zrozumiałych nazw. Przykładem może być enum reprezentujący dni tygodnia:

enum DniTygodnia
{
    Poniedziałek,
    Wtorek,
    Środa,
    Czwartek,
    Piątek,
    Sobota,
    Niedziela
}

W powyższym przykładzie mamy enum o nazwie „DniTygodnia”, który zawiera siedem wartości odpowiadających dniom tygodnia. Każda z tych wartości ma przypisaną liczbę całkowitą, która jest automatycznie inkrementowana od zera, jeśli nie przypiszemy jej własnej wartości.

Dlaczego chcemy konwertować enum na string?

Chociaż wartości w enumach są domyślnie reprezentowane przez liczby, w wielu przypadkach będziemy chcieli je wyświetlić jako tekst, np. w aplikacjach, które komunikują się z użytkownikami. Wartości enum są przydatne do reprezentacji stanów, typów, kategorii itp., ale w wielu sytuacjach chcemy je zaprezentować w formie tekstowej, aby były bardziej zrozumiałe dla ludzi. A jak to zrobić? Z pomocą przychodzi konwersja enum do stringa w C#!

Metody konwersji enum na string

W C# mamy kilka metod, które pozwalają na konwersję wartości enum do stringa. Poniżej przedstawimy najpopularniejsze z nich oraz omówimy ich zastosowanie.

1. Użycie metody ToString()

Najprostszym sposobem na konwersję enum do stringa w C# jest użycie metody wbudowanej w klasę enum – ToString(). Ta metoda zwraca nazwę wartości enum w postaci tekstu. Oto przykład:

enum DniTygodnia
{
    Poniedziałek,
    Wtorek,
    Środa,
    Czwartek,
    Piątek,
    Sobota,
    Niedziela
}

class Program
{
    static void Main()
    {
        DniTygodnia dzien = DniTygodnia.Wtorek;
        string dzienString = dzien.ToString();
        Console.WriteLine(dzienString); // Wtorek
    }
}

Jak widać, po przypisaniu wartości DniTygodnia.Wtorek do zmiennej dzien, używając metody ToString(), możemy uzyskać nazwę tego dnia w postaci stringa, czyli „Wtorek”. Jest to najprostsza metoda konwersji enum na string w C#.

2. Użycie metody Enum.GetName()

Kolejną metodą jest wykorzystanie statycznej metody Enum.GetName(), która przyjmuje typ enum i jego wartość, a zwraca nazwę tej wartości jako string. Jest to alternatywa dla metody ToString() i może być przydatna w niektórych przypadkach, zwłaszcza gdy nie mamy dostępu do instancji zmiennej typu enum, a jedynie jej wartość. Oto przykład:

enum DniTygodnia
{
    Poniedziałek,
    Wtorek,
    Środa,
    Czwartek,
    Piątek,
    Sobota,
    Niedziela
}

class Program
{
    static void Main()
    {
        int numerDnia = 3; // Reprezentuje środę
        string dzienString = Enum.GetName(typeof(DniTygodnia), numerDnia);
        Console.WriteLine(dzienString); // Środa
    }
}

W tym przypadku używamy metody Enum.GetName(), aby przekazać numer dnia (np. 3) i uzyskać nazwę tego dnia, która w tym przypadku to „Środa”.

3. Użycie metody Enum.GetValues() do iteracji po enumie

Czasami będziemy chcieli iterować przez wszystkie wartości enum i uzyskać ich reprezentację tekstową. Możemy to zrobić, używając metody Enum.GetValues(), która zwraca wszystkie wartości enum w postaci tablicy. Następnie możemy przejść po tej tablicy, konwertując każdą wartość na string za pomocą metody ToString(). Oto przykład:

enum DniTygodnia
{
    Poniedziałek,
    Wtorek,
    Środa,
    Czwartek,
    Piątek,
    Sobota,
    Niedziela
}

class Program
{
    static void Main()
    {
        foreach (DniTygodnia dzien in Enum.GetValues(typeof(DniTygodnia)))
        {
            Console.WriteLine(dzien.ToString());
        }
    }
}

Ten kod wypisuje wszystkie dni tygodnia w postaci stringów:

Poniedziałek
Wtorek
Środa
Czwartek
Piątek
Sobota
Niedziela

Metoda Enum.GetValues() jest szczególnie użyteczna, gdy chcemy wyświetlić lub wykorzystać wszystkie możliwe wartości enum w programie.

Konwersja string na enum

Jeśli masz string i chcesz go przekonwertować z powrotem na odpowiadającą mu wartość enum, możesz użyć metody Enum.Parse(). Oto przykład, jak to zrobić:

enum DniTygodnia
{
    Poniedziałek,
    Wtorek,
    Środa,
    Czwartek,
    Piątek,
    Sobota,
    Niedziela
}

class Program
{
    static void Main()
    {
        string dzienString = "Środa";
        DniTygodnia dzienEnum = (DniTygodnia)Enum.Parse(typeof(DniTygodnia), dzienString);
        Console.WriteLine(dzienEnum); // Środa
    }
}

W tym przypadku metoda Enum.Parse() konwertuje string „Środa” na odpowiednią wartość enum, a następnie możemy ją wykorzystać w naszym programie.

Podsumowanie

Konwersja wartości typu enum na string w C# jest bardzo prosta i oferuje kilka różnych metod, które mogą być przydatne w różnych sytuacjach. Dzięki metodzie ToString(), Enum.GetName(), czy Enum.GetValues() możemy łatwo uzyskać reprezentację tekstową naszych wartości enum. Pamiętaj, że jeśli chcesz przekonwertować stringa na wartość enum, użyj Enum.Parse(). C# daje programistom ogromne możliwości pracy z typami danych, a enumy są jednym z narzędzi, które pomagają tworzyć bardziej czytelny i zorganizowany kod.

Komentarze (0) - Nikt jeszcze nie komentował - bądź pierwszy!

Imię:
Treść: