首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从枚举中选择随机值?

如何从枚举中选择随机值?
EN

Stack Overflow用户
提问于 2010-06-28 19:59:29
回答 9查看 125K关注 0票数 195

给定C#中的任意枚举,如何选择随机值?

(我在上面没有找到这个非常基本的问题。我将立即发布我的答案供任何人参考,但请随时发布您自己的答案。)

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2010-06-28 20:03:27

代码语言:javascript
运行
复制
Array values = Enum.GetValues(typeof(Bar));
Random random = new Random();
Bar randomBar = (Bar)values.GetValue(random.Next(values.Length));
票数 323
EN

Stack Overflow用户

发布于 2010-06-28 20:01:50

使用Enum.GetValues检索所有值的数组。然后选择一个随机数组项目。

代码语言:javascript
运行
复制
static Random _R = new Random ();
static T RandomEnumValue<T> ()
{
    var v = Enum.GetValues (typeof (T));
    return (T) v.GetValue (_R.Next(v.Length));
}

测试:

代码语言:javascript
运行
复制
for (int i = 0; i < 10; i++) {
    var value = RandomEnumValue<System.DayOfWeek> ();
    Console.WriteLine (value.ToString ());
}

->

代码语言:javascript
运行
复制
Tuesday
Saturday
Wednesday
Monday
Friday
Saturday
Saturday
Saturday
Friday
Wednesday
票数 72
EN

Stack Overflow用户

发布于 2017-06-13 22:50:41

你可以这样做:

代码语言:javascript
运行
复制
var rnd = new Random();
return (MyEnum) rnd.Next(Enum.GetNames(typeof(MyEnum)).Length);

不需要存储数组

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3132126

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档