0

基本上,在文本框 (txtEl) 中,我正在编写向量的长度,然后将其添加为随机数(从 1 到 500),将它们全部显示在列表框中。但我不知道如何从所有这些数字中获取模式。

        Random Aleatorio = new Random();
        int x = Convert.ToInt16(txtEl.Text);

        int[] elementos = new int [x];

        int moda = 0;

        for (int i = 0; i < elementos.Length; i++)
        {
            elementos[i] = Aleatorio.Next(1, 500);
            listEl.Items.Add(elementos[i].ToString());



        }
4

2 回答 2

0

您可以在for循环之后使用此代码:

var lookup = elementos.ToLookup(n => n);
int maxCount = lookup.Max(g => g.Count());
var modes = lookup.Where(g => g.Count() == maxCount).Select(g => g.Key);

请注意,您的数据中可以有多种模式,因此只期望一个模式并没有意义int,而是期望一个可枚举或ints 列表。

如果你只想要一种模式,你可以.First()在可枚举上做。如果您需要确保从模式列表中随机选择一种模式,请不要使用.First(),而是使用另一个随机数来随机选择一种。

于 2013-09-11T16:39:51.830 回答
0

你可以做这样的事情我不确定 listEl 是什么,但你应该可以在这里使用它。如果不只是将它们添加到基本列表中。

var mode = (from item in listEl.Items
                         group item by item into g
                         orderby g.Count() descending
                         select g.Key).First();
于 2013-09-11T16:40:34.310 回答