将C#Count()与函数一起使用
我试图通过使用带有谓词的Linq来计算数组的最大值在数组中出现的次数。然而,我并不完全明白如何去做。通过阅读MSDN的一个不多的例子,我想我明白了,但显然不是 这就是我的想法:将C#Count()与函数一起使用,c#,linq,max,predicate,C#,Linq,Max,Predicate,我试图通过使用带有谓词的Linq来计算数组的最大值在数组中出现的次数。然而,我并不完全明白如何去做。通过阅读MSDN的一个不多的例子,我想我明白了,但显然不是 这就是我的想法: string[] test = { "1", "2", "3", "4", "4" }; string max = test.Max(); Label1.Text = test.Count(p => p == max); 但这并不奏效。因此,我尝试将max更改为一个整数,以查看这是否可行,但也不起作用。您可以使用
string[] test = { "1", "2", "3", "4", "4" };
string max = test.Max();
Label1.Text = test.Count(p => p == max);
但这并不奏效。因此,我尝试将max更改为一个整数,以查看这是否可行,但也不起作用。您可以使用Where函数先进行筛选,然后进行计数:
Label1.Text = test.Where(p => p == max).Count().ToString();
尝试以下方法:
Label1.Text = test.Where(t => t == test.Max()).Count().ToString();
使用是可以的。您只需要将返回值(一个整数)转换为字符串
Label1.Text = test.Count(p => p == max).ToString();
现在你有了最后的计数。使用int集合更有意义。现在要显示它,您只需在计数时调用ToString()。您不需要先使用
Where
进行筛选Count
有一个重载,它使用一个Func
谓词,只对匹配的项进行计数。@Mehrdad:不知道,将使用您的答案然后列出。Count(item=>item.Value==“something”)
将是一个更好、更简单的方法。您所说的“不起作用”是什么意思?它的作用是什么?它与您期望的有什么不同?您是否收到任何错误消息?
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());