C# - 如何查找数组中最常见和最不常见的整数?

Run*_*bbo -1 c# arrays random dice

我被要求制作一个带有两个数组(每个骰子一个)的 Dice 程序,并将两个结果相加,例如:2(骰子 1)+ 6(骰子 2)= 8。

该程序必须掷骰子 100 次并显示每次的总和。到目前为止我可以做到这一点,但程序还必须显示哪个和是最频繁的,以及哪个和是最不频繁的。

像这样:sum = [2, 2, 2, 2, 3, 3, 4, 4, 5, 6, 6]。最常见:2;最不常见:5。

我该怎么做?

这就是我的代码的样子:

static void Main(string[] args)
    {
        Random gerador = new Random();
        int[] soma = new int[100];
        int rolagem = 0;

        for(int i = 0; i < soma.Length; i++)
        {
            rolagem = 0;
            rolagem += gerador.Next(6) + 1;
            rolagem += gerador.Next(6) + 1;
            soma[i] = rolagem;
        }

        var mais = soma.GroupBy(item => item).OrderByDescending(g => g.Count()).Select(g => g.Key).First();
        //NEED TO FIND OUT LEAST COMMON SUM

        for (int j = 1; j < soma.Length; j++)
        {
            Console.Write("{0} ", soma[j]);
        }
        Console.WriteLine("Soma mais frequente: {0}, Soma menos frequente: {1}", mais, menos);
        Console.ReadKey();
    }
Run Code Online (Sandbox Code Playgroud)

m1k*_*ael 5

你快到了,你可以类似地找到最不常见的一个:

var array = new[] { 1, 1, 1, 1, 4, 2, 2, 3, 3, 3, 5, 5 };
var result = array.GroupBy(i => i).OrderBy(g => g.Count()).Select(g => g.Key).ToList();

var mostCommon = result.Last();
var leastCommon = result.First();
Run Code Online (Sandbox Code Playgroud)