7

我试图通过使用带有谓词的 Linq 来计算数组的最大值出现在数组中的次数。.Count()但是,我不完全了解如何做到这一点。通过阅读 MSDN 的少量示例,我以为我理解了,但显然不是!

这是我想到的:

string[] test = { "1", "2", "3", "4", "4" };
string max = test.Max();
Label1.Text = test.Count(p => p == max);

但这没有用。所以我尝试将max更改为整数以查看是否可行,但这也不起作用。

4

4 回答 4

16

使用Count(predicate)没问题。您只需要将返回值(整数)转换为字符串。

Label1.Text = test.Count(p => p == max).ToString();
于 2009-09-18T13:42:53.070 回答
7

您可以使用 Where 函数先过滤然后计数:

Label1.Text = test.Where(p => p == max).Count().ToString();
于 2009-09-18T13:41:51.557 回答
2
        int[] test = { 2, 45, 3, 23, 23, 4, 2, 1, 1, 1, 1, 23, 45, 45, 45 };
        int count = test.Count(i => i == test.Max());

Now you have the count which is your final count. Makes more sense with an int collection. Now to display it, you can just call ToString() on count.

于 2009-09-18T13:46:58.133 回答
0

尝试类似:

Label1.Text = test.Where(t => t == test.Max()).Count().ToString();
于 2009-09-18T13:42:38.340 回答