生成C#2.0中随机枚举 [英] Generate random enum in C# 2.0
本文介绍了生成C#2.0中随机枚举的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
可能有人请点我朝着更清洁的生成随机枚举成员方法。这工作,但看起来丑陋。
谢谢!
公共牛逼RandomEnum< ; T>()
{
的String []项目= Enum.GetNames(typeof运算(T));
随机R =新的随机();
串E =项目[r.Next(0,items.Length - 1)];
回报率(T)Enum.Parse(typeof运算(T),E,真正的);
}
解决方案
公共牛逼RandomEnum< T>()
{
T [] =值(T [])Enum.GetValues(typeof运算(T));
返回值[新的随机()和Next(0,values.Length)];
}
<子>感谢@ [马克·Gravell]为庞廷出最大在Random.Next(最小值,最大值)是唯一的。
Could someone please point me toward a cleaner method to generate a random enum member. This works but seems ugly.
Thanks!
public T RandomEnum<T>()
{
string[] items = Enum.GetNames(typeof( T ));
Random r = new Random();
string e = items[r.Next(0, items.Length - 1)];
return (T)Enum.Parse(typeof (T), e, true);
}
解决方案
public T RandomEnum<T>()
{
T[] values = (T[]) Enum.GetValues(typeof(T));
return values[new Random().Next(0,values.Length)];
}
Thanks to @[Marc Gravell] for ponting out that the max in Random.Next(min,max) is exclusive.
这篇关于生成C#2.0中随机枚举的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文