首页 > 解决方案 > 如何使用布尔值从预选列表中选择一个随机值来启用或禁用可用值?

问题描述

使用随机类,我可以预先选择它只能在使用布尔值时使用的数字吗?

例如:假设我想要一个 0-9 之间的随机数,但我只想从数字 1、4、6 和 8 中进行选择,如果说布尔值命名为:“”、“”、“”、“” “是真的。

    bool Zero = false;
    bool One = true;
    bool Two = false;
    bool Three = false;
    bool Four = true;
    bool Five = false;
    bool Six = true;
    bool Seven = false;
    bool Eight = true;
    bool Nine = false;

所以它会输出这样的东西: 18441861684168448418411864816

有没有办法使用下面的“随机类”来解决这个问题,但只为上面的真正布尔值换出值(1, 10),还是我需要使用其他东西?如果是这样,你有什么建议?

Random rnd = new Random();
int RandomizedNumber = rnd.Next(1, 10);  // creates a number between 1 and 9

我在 C# 中使用 Visual Studios Windows 窗体。

标签: c#arrayslistrandom

解决方案


实现此目的的一种简单且优化的方法是将要从中选择的数字放入列表中(易于修改,或放入数组中以全速运行),然后从该列表中选择一个随机元素。可以根据布尔值填充此列表。

例如:

var list = new List<int> { 1, 4, 6, 8 };

Random rnd = new Random();

// Pick a random number from the list
int index = rnd.Next(list.Count);
int randomizedNumber = list[index];

推荐阅读