Usando C Contagem # () com uma função
Pergunta
Eu estou tentando descobrir quantas vezes o valor máximo de uma matriz ocorre dentro da matriz, usando .Count()
com um predicado dentro. No entanto, eu não entender completamente como fazê-lo. Da leitura escassa exemplo do MSDN eu pensei que eu entendi, mas aparentemente não!
Este é o que eu pensei:
string[] test = { "1", "2", "3", "4", "4" };
string max = test.Max();
Label1.Text = test.Count(p => p == max);
Mas isso não funcionou. Então, eu tentei mudar max para um inteiro para ver se isso iria funcionar, mas que não quer trabalhar.
Solução
Você pode usar o Onde função para filtrar primeiro e depois contar:
Label1.Text = test.Where(p => p == max).Count().ToString();
Outras dicas
Usando Count(predicate)
é OK. Você só precisa converter o valor de retorno (que é um inteiro) para string.
Label1.Text = test.Count(p => p == max).ToString();
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());
Agora você tem a contagem que é sua contagem final. Faz mais sentido com uma coleção int. Agora, para exibi-lo, você pode apenas chamar ToString () na contagem.
Tente algo como:
Label1.Text = test.Where(t => t == test.Max()).Count().ToString();