如何比较数组中的数字

How to compare numbers in an array

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DiceGame
{
class Program
  {



    static void Main(string[] args)
    {
        Random randomnumber = new Random();

        int[] Player = new int[5];
        Player[0] = randomnumber.Next(1, 6); 
        Player[1] = randomnumber.Next(1, 6); 
        Player[2] = randomnumber.Next(1, 6); 
        Player[3] = randomnumber.Next(1, 6); 
        Player[4] = randomnumber.Next(1, 6);
        Console.WriteLine("You rolled a " + Player[0] + " " + Player[1] + " " + Player[2] + " " + Player[3] + " " + Player[4]);
         Console.WriteLine(" You have a " + however many are equal);
    }
  }
}

编辑:我需要比较数组中的多个数字。他们随机 1-6,如果 2 彼此相等,我需要显示对。若3相等则显示三一,若4四一5,一五

edit2:我唯一能找到的就是这个,但它只比较了 Player[0] 和数组的其余部分

for (int i = 0; i < Player.Length; i++)
        {
            int count = 0;
            for (int j = 0; j < Player.Length; j++)
            {
                if (Player[i] == Player[j])
                    count = count + 1;
            }

            Console.WriteLine("\t\n " + Player[i] + " occurs " + count);




            Console.ReadKey();

您可以使用 foreach 循环按常规编写:

int theSame = 0;
foreach (var x in Player)
{    
     int localTheSame = 0;
     foreach (var y in Player)
     {
         if (x == y)
         {
             localTheSame++;
         }
     }

     if (localTheSame > theSame)
     {
         theSame = localTheSame;
     }
}       

我在你的 edit2 之前写了这个答案,所以我认为你想要显示任意数字的最大出现次数。

编辑

使用 LINQ 的相同解决方案:

int theSame = Player.Max(x => Player.Count(y => x == y));

您可以使用 LINQ 来计算每个数字。

 Random randomnumber = new Random();

        int[] Player = new int[5];
        Player[0] = randomnumber.Next(1, 6); 
        Player[1] = randomnumber.Next(1, 6); 
        Player[2] = randomnumber.Next(1, 6); 
        Player[3] = randomnumber.Next(1, 6); 
        Player[4] = randomnumber.Next(1, 6);
        Console.WriteLine("You rolled a " + Player[0] + " " + Player[1] + " " + Player[2] + " " + Player[3] + " " + Player[4]);
        var selected = from x in Player.AsEnumerable()
                       group x by x into g
                       select new { Digit = g.Key, DigitCount = g.Count()};
     foreach(var sel in selected)
     {
       Console.WriteLine("You have rolled " + sel.Digit + " no of times " + sel.DigitCount);
     }

你可以这么简单:

foreach (var p in Player.GroupBy(x => x).Select(x => new { Player = x.Key, Count = x.Count()}))
            Console.WriteLine("Player {0} occurs {1} time{2}", p.Player, p.Count, p.Count == 1 ? "s" : "");