给定C#中的任意枚举,如何选择随机值?
(我在上面没有找到这个非常基本的问题。我将立即发布我的答案供任何人参考,但请随时发布您自己的答案。)
发布于 2010-06-28 20:03:27
Array values = Enum.GetValues(typeof(Bar));
Random random = new Random();
Bar randomBar = (Bar)values.GetValue(random.Next(values.Length));
发布于 2010-06-28 20:01:50
使用Enum.GetValues检索所有值的数组。然后选择一个随机数组项目。
static Random _R = new Random ();
static T RandomEnumValue<T> ()
{
var v = Enum.GetValues (typeof (T));
return (T) v.GetValue (_R.Next(v.Length));
}
测试:
for (int i = 0; i < 10; i++) {
var value = RandomEnumValue<System.DayOfWeek> ();
Console.WriteLine (value.ToString ());
}
->
Tuesday
Saturday
Wednesday
Monday
Friday
Saturday
Saturday
Saturday
Friday
Wednesday
发布于 2017-06-13 22:50:41
你可以这样做:
var rnd = new Random();
return (MyEnum) rnd.Next(Enum.GetNames(typeof(MyEnum)).Length);
不需要存储数组
https://stackoverflow.com/questions/3132126
复制相似问题