Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 检查数组是否包含相同的数字_C#_Predicate_Dice - Fatal编程技术网

C# 检查数组是否包含相同的数字

C# 检查数组是否包含相同的数字,c#,predicate,dice,C#,Predicate,Dice,我想做一个简单的骰子游戏。它完全在控制台中。 用户可以设置无限数量的骰子。然后,游戏必须告诉你,所有的骰子在同一时间需要掷多少个骰子才能达到6 我试过这样的方法 int i = 0; int[] throws = new int[4000]; bool success = false; do { throws[1] = dice.Next(1, 7); throws[2] = dice.Next(1, 7);

我想做一个简单的骰子游戏。它完全在控制台中。 用户可以设置无限数量的骰子。然后,游戏必须告诉你,所有的骰子在同一时间需要掷多少个骰子才能达到6

我试过这样的方法

    int i = 0;
    int[] throws = new int[4000];
    bool success = false;
    do
    {
        throws[1] = dice.Next(1, 7);
        throws[2] = dice.Next(1, 7);
        throws[3] = dice.Next(1, 7);
        throws[4] = dice.Next(1, 7);
        throws[5] = dice.Next(1, 7);
        throws[6] = dice.Next(1, 7);

        if (Array.TrueForAll(throws, 6))
        {
            success = true;
        }
        i++;
    } while (success != true);
但是trueforallsays在一个叫做谓词的东西上失败了,我一直无法完全理解它

还有别的办法吗


这里有点卡住了。。希望有人能帮上忙。

谓词是一种方法,它以一个对象/变量为参数,检查该对象/变量的条件,然后返回
true
false
。。现在谈谈这个问题:

而不是做:

 if (Array.TrueForAll(throws, 6))
做:

但这是什么

x => x == 6
这正是我们所说的谓词吗

是一个lambda,可以理解为:

取数组中的每个元素,在变量X中。现在计算X== 六,


请参阅文档。第二个参数应该是一个函数,如果要检查某个项的保留,则返回true,否则返回false。如果throws是bool[],则需要throws。TrueForAll(b=>b)@vc74 throws是int[]throws=new int[4000]@那你的第二个问题来了。您应该只将数组设置为所需的大小,否则您的
TrueForAll
将检查这些额外的索引-它们可能不都满足您的谓词。@andrelange91然后您可以使用:if(throws.all(i=>(i==6))另请参见此处的示例:@andrelange91共享爱(并节省人们的时间)如果这解决了您的问题,请将此标记为已回答!@RufusL现在完成,只是想运行它以确保所有问题都得到解决^^
x => x == 6