使用带有函数的C#Count()

时间:2009-09-18 13:39:50

标签: c# linq max predicate

我试图通过使用带有谓词的Linq .Count()来计算数组中最大值的次数。但是,我不完全明白该怎么做。从阅读MSDN的例子我认为我理解,但显然不是!

这就是我的想法:

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

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

4 个答案:

答案 0 :(得分:16)

使用Count(predicate)即可。您只需要将返回值(这是一个整数)转换为字符串。

Label1.Text = test.Count(p => p == max).ToString();

答案 1 :(得分:7)

您可以先使用Where函数进行过滤,然后计算:

Label1.Text = test.Where(p => p == max).Count().ToString();

答案 2 :(得分: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());

现在你的计数是你的最终计数。使用int集合更有意义。现在要显示它,你可以在count上调用ToString()。

答案 3 :(得分:0)

尝试类似:

Label1.Text = test.Where(t => t == test.Max()).Count().ToString();