Digamos que tengo una función que acepta una enumeración decorada con el atributo Flags. Si el valor de la enumeración es una combinación de más de uno de los elementos enum ¿cómo puedo extraer uno de esos elementos al azar? Tengo lo siguiente, pero parece que debe haber una mejor manera.Valor aleatorio de Flags enum
[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();
}
Me gustaría tener un valor aleatorio de sólo un subconjunto de la enumeración como se define por una combinación bit a bit como "Azul | Rojo". Perdón por no ser más claro. –