【问题标题】:How can I select a random option?如何选择随机选项?
【发布时间】:2018-08-24 21:26:25
【问题描述】:

我有一个整数数组,它应该如下所示:

          7 3 2 4 5 6 1 9 10 8   Values
         [1 2 3 4 5 6 7 8 9 10]  Order In Array

这个值应该改变它的顺序,每个值,它都是一个随机选项,例如:

如果它选择第一个值为6,它选择蓝色,然后,它转到第二个值,如果值为4,它选择绿色。

每个数字都等于一种颜色。

我一直在想我可以使用 if 条件,但我不知道是否有一个属性来检查值,因为如果我为每个选项做一个 if 条件,它可能需要 100 多行代码! . 你知道我该如何改进它吗?

【问题讨论】:

  • 查看字典 查找
  • @Kenny 如果查找值是固定的,那么字典将是多余的,因为数组可以完美地工作。

标签: c# arrays int


【解决方案1】:

你几乎可以在一行中做到这一点:

var rnd = new Random();
var orderedNumbers = new int[] {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
var randomizedNumbers = orderedNumbers.OrderBy(c => rnd.Next()).ToArray();

【讨论】:

  • Enumerable.Range(1, 10).OrderBy(c => rnd.Next()).ToArray();
  • 是的,我几乎发布了这个解决方案,但它仅在他的第一个数组是常规序列时才有效,但如果有序数组是 1、5、6、8、9、15 则无效等。
  • 我的答案在这两种情况下都有效,只需将我的 orderedNumbers 数组替换为您的数组(是否有序,是否常规),它将是随机的
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-12-25
  • 2021-05-04
  • 2022-11-23
  • 2014-09-19
  • 2011-09-05
  • 2012-10-07
  • 1970-01-01
相关资源
最近更新 更多