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