c# - 如何使用布尔值从预选列表中选择一个随机值来启用或禁用可用值?
问题描述
使用随机类,我可以预先选择它只能在使用布尔值时使用的数字吗?
例如:假设我想要一个 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 窗体。
解决方案
实现此目的的一种简单且优化的方法是将要从中选择的数字放入列表中(易于修改,或放入数组中以全速运行),然后从该列表中选择一个随机元素。可以根据布尔值填充此列表。
例如:
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];
推荐阅读
- vba - Excel VBA 格式不正确
- python - 对元组中不同大小的列表进行分组
- c++ - 将 C++ 类型信息保存到文件以供跨程序调用使用
- javascript - 如何在格式化的货币输入上使用 JavaScript 'Max' 验证规则
- capistrano - Capistrano 的 /current 文件夹总是指向同一个(不存在的)版本
- node.js - 如何在连接表中使用 Feathers 和 Sequelize 定义多对多?
- javascript - 在 JavaScript 中释放内存的正确方法
- jenkins - 使用已经具有“选择参数”的参数安排脚本化管道作业
- vba - 使用 VBA 将数据分成列时如何自动接受弹出消息?
- java - AWS Amazon S3 Java SDK - 在上传大文件时刷新凭证/令牌