首页 > 解决方案 > 使用三元运算符c#随机解析枚举器以确定左或右

问题描述

你好 stackoverflow 社区,

我正在做一个项目,并坚持以下。我拥有的是一个公共枚举 Horizo​​ntalDirection 类,它确定左或右。我需要做的是用我的三元运算符调用 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;

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

标签: c#enumsoperator-keywordternaryenumerator

解决方案


您的第二个选项有效。这是一个工作示例。

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

推荐阅读