Dites que j'ai une fonction qui accepte une énumération décorée avec l'attribut Flags. Si la valeur de l'enum est une combinaison de plus d'un des éléments enum, comment puis-je extraire un de ces éléments au hasard? J'ai ce qui suit mais il semble qu'il doit y avoir un meilleur moyen.Valeur aléatoire 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();
}
Je voudrais une valeur aléatoire de seulement un sous-ensemble de l'ENUM tel que défini par un combinaison bit à bit comme "Blue | Red". Désolé de ne pas être plus clair. –