【问题标题】:How can I get the mode (Statistic) in Visual Studio?如何在 Visual Studio 中获取模式(统计)?
【发布时间】:2013-09-15 19:03:28
【问题描述】:

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



        }

【问题讨论】:

    标签: c# mode


    【解决方案1】:

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

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

    【讨论】:

    • listEl 是我从向量中添加随机数的列表框 :)
    • 是的,没关系它不喜欢它。但是,如果当您将它们添加到其中时,您也添加到标准列表中,然后在那里使用它。对此感到抱歉。
    【解决方案2】:

    您可以在 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(),而是使用另一个随机数随机选择一种。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-09-12
      • 2019-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-30
      • 2011-12-15
      相关资源
      最近更新 更多