gpt4 book ai didi

c# - 来自 Flags 枚举的随机值

转载 作者:行者123 更新时间:2023-12-01 18:28:18 26 4
gpt4 key购买 nike

假设我有一个函数,它接受用 Flags 属性修饰的枚举。如果枚举的值是多个枚举元素的组合,我如何随机提取这些元素之一?我有以下内容,但似乎必须有更好的方法。

[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();
}

最佳答案

您可以调用Enum.GetValues获取枚举定义值的数组,如下所示:

var rand = new Random();

Colors[] allValues = (Colors[])Enum.GetValues(typeof(Colors));
Colors value = allValues[rand.Next(allValues.Length)];

关于c# - 来自 Flags 枚举的随机值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3001593/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com