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();
}