Giả sử tôi có một hàm chấp nhận một enum được trang trí bằng thuộc tính Flags. Nếu giá trị của enum là sự kết hợp của nhiều hơn một trong các phần tử enum thì làm thế nào tôi có thể trích xuất một trong những phần tử đó một cách ngẫu nhiên? Tôi có những điều sau đây nhưng có vẻ như phải có một cách tốt hơn.Giá trị ngẫu nhiên từ 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();
}
Tôi muốn một giá trị ngẫu nhiên chỉ có một tập hợp con của enum theo định nghĩa của một kết hợp bitwise như "Blue | Red". Xin lỗi vì không rõ ràng hơn. –