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

Psy*_*nic 6 c# linq predicate max

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

这就是我的想法:

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

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

Meh*_*ari 16

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

Label1.Text = test.Count(p => p == max).ToString();
Run Code Online (Sandbox Code Playgroud)


JDu*_*ley 7

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

Label1.Text = test.Where(p => p == max).Count().ToString();
Run Code Online (Sandbox Code Playgroud)

  • 你不需要首先使用`Where`过滤**.`Count`有一个带有`Func <T,bool>`谓词的重载,只计算匹配项. (6认同)