生成C#2.0中随机枚举 [英] Generate random enum in C# 2.0

查看:213
本文介绍了生成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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆