Скажем, у меня есть функция, которая принимает перечисление, украшенное атрибутом Flags. Если значение перечисления представляет собой комбинацию из нескольких элементов перечисления, как я могу извлечь один из этих элементов случайным образом? У меня есть следующее, но кажется, что должен быть лучший способ.Случайное значение from 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();
}
Я хотел бы случайное значение только подмножество перечисления, как определяется побитовая комбинация, как «Синий | Красный». Извините за неясность. –