說我有一個函數接受一個用Flags屬性裝飾的枚舉。如果枚舉的值是多個枚舉元素的組合,我如何隨機提取其中一個元素?我有以下,但似乎必須有更好的方法。來自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();
}
我想通過一個定義僅枚舉的一個子集的隨機值按位組合,如「藍色|紅色」。對不起,不清楚。 – 2010-06-09 00:07:23