微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

通过使用三元运算符C#随机解析枚举数以确定左或右

如何解决通过使用三元运算符C#随机解析枚举数以确定左或右

Hello stackoverflow社区,

我正在从事一个项目,并坚持以下几点。我所拥有的是一个公共枚举Horizo​​ntalDirection类,该类确定Left或Right。我需要做的是用三元运算符调用random.Next(0,2)来确定它是否为0,向左移动是否为1。到目前为止,我没有以下任何运气。

Enum.Parse(random.Next(0,2) == 0 ? HorizontalDirection.Left : HorizontalDirection.Right);

(HorizontalDirection)random.Next(0,2) == 0 ? HorizontalDirection.Left : HorizontalDirection.Right;

对于比我更有经验的大多数人,我很抱歉花您时间在您看来微不足道的事情上。对我来说,这是一个学习为什么我的逻辑失败的机会。

解决方法

您只需要执行随机操作并将其转换为枚举即可:
这是因为可以将int强制转换为枚举(只要int o为0或1!)。 (myEnum)0将返回myEnum的第一个值,依此类推。祝您项目顺利!

Random rd = new Random();
HorizontalDirection direction = (HorizontalDirection) rd.Next(2); 

这就是三元运算符的样子:

Random rd = new Random();
var random = rd.Next(2);
HorizontalDirection direction = random == 0 ? HorizontalDirection.Left : TransactionState.Right;
,

您的第二个选项有效。这是一个可行的示例。

var l = new List<HorizontalDirection>();

Random r = new Random();
for(int i = 0; i < 1000;i++)
{
    var d = r.Next(0,2) == 0 ? HorizontalDirection.Left : HorizontalDirection.Right;
    l.Add(d);
}


Console.WriteLine($"lefts: {l.Count(d => d == HorizontalDirection.Left)},rights: {l.Count(d => d == HorizontalDirection.Right)}");

输出

lefts: 468,rights: 532

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。