6 Stimmen

Zufälliger Wert aus Flags enum

Angenommen, ich habe eine Funktion, die eine mit dem Attribut "Flags" verzierte Aufzählung akzeptiert. Wenn der Wert der Aufzählung eine Kombination aus mehr als einem der Aufzählungselemente ist, wie kann ich eines dieser Elemente nach dem Zufallsprinzip extrahieren? Ich habe das Folgende, aber es scheint, dass es einen besseren Weg geben muss.

[Flags]
enum Colours
{
    Blue = 1,
    Red = 2,
    Green = 4
}

public static void Main()
{
    var options = Colours.Blue | Colours.Red | Colours.Green;
    var opts = options.ToString().Split(',');
    var rand = new Random();
    var selected = opts[rand.Next(opts.Length)].Trim();
    var myEnum = Enum.Parse(typeof(Colours), selected);
    Console.WriteLine(myEnum);
    Console.ReadLine();
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X