如何在Visual Studio中获取模式(Statistic)?

时间:2013-09-11 16:29:30

标签: c# mode

基本上,在文本框(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());



        }

2 个答案:

答案 0 :(得分: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,但只有int的可枚举或列表才有意义。

如果您只想要一种模式,则可以对可枚举进行.First()。如果您需要确保从模式列表中随机选择一种模式,请不要使用.First(),而是使用其他随机数随机选择一种模式。

答案 1 :(得分:0)

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

var mode = (from item in listEl.Items
                         group item by item into g
                         orderby g.Count() descending
                         select g.Key).First();