Enums und Strings



  • Hi,

    ich habe folgendes Enum:

    enum Colors
    {
        Red = 1,
        Blue = 2,
        Green = 4,
        Yellow = 8
    };
    
    Colors foobar = Colors.Red | Colors.Yellow;
    

    Jetzt möchte ich gerne die Werte aus foobar in Stringform. Dafür habe ich folgendes probiert, doch das hat mir immer alle Werte aus Colors wiedergegeben. 😞

    foreach (string name in Enum.GetNames (foobar.GetType ()))
        Console.WriteLine (name);
    

    Ich möchte:
    Red
    Yellow

    Ich bekomme:
    Red
    Blue
    Green
    Yellow

    Jemand eine Idee wie ich das realisieren kann?

    Viele Grüße,
    C#'ler



  • Das geht so nicht. Du musst das von Hand machen.
    Enum.GetNames gibt dir ALLE möglichen Werte als Namen zurück.
    Enum.GetName gibt dir den Namen des aktuellen Wertes zurück. Leider geht das nicht mit "veroderten" Werten.



  • Enum.Format(typeof(Colors),foobar,"F")

    Aber du solltest besser noch das FlagsAttribut für dein Enum verwenden.


Anmelden zum Antworten