从数组中选择一个随机数并将其返回到标签

时间:2016-06-16 00:24:46

标签: c#

我正在创建一个允许用户输入基因并随机选择加权选项的程序。

例如:

// If statements for gene 1 (NNN)
if (intSireBuild == 1)
{
    if (intDamBuild == 1)
    {
        lblResults1.Content = "NNN";
    }
}
else if (intSireBuild == 1)
{
    if (intDamBuild == 2)
    {
        // Random number thing

        int[] NNNxNna;
        NNNxNna = new int[5];

        NNNxNna[0] = 1;
        NNNxNna[1] = 1;
        NNNxNna[2] = 1;
        NNNxNna[3] = 1;
        NNNxNna[4] = 2;
        NNNxNna[5] = 2;

        Random random = new Random();
        int gene2 = random.Next(NNNxNna.Length);

        // The problem is occurring here, I believe

        if (gene2 == 1)
        {
            lblResults1.Content = "NNN";
        }
        else
        {
            lblResults1.Content = "Nna";
        }
    }
}
// When you click the button, a calculation will be made using user inputed genes

我意识到很可能有一种更简单的方法可以做到这一点,但这是我想要这样做的方式。

我所遇到的问题是带有数字列表(1,1,1,1,2,2,)的数组之间的差异(意味着基因'NNN - 或'1''比'Nna'更常见的是,正在发生的事情是程序混淆并且不会向我正在使用的标签输出任何信息。

我想知道是否有人可以帮我弄清楚我错过了什么/没有正确编码?

1 个答案:

答案 0 :(得分:0)

以下情况永远不会发生,否则它会进入第一个“if”

else if (intSireBuild == 1)

您应该删除第二个条件并将其保留为以下

if (intSireBuild == 1)
{
    if (intDamBuild == 1)
    {
        lblResults1.Content = "NNN";
    }
    else if (intDamBuild == 2)
    {
        // Random number thing
        // Rest of the code

另外,这是不正确的绑定索引NNNxNna[5] = 2;,因为大小为5的数组只能包含0到4之间的索引。