Eu estive discutindo isso com os colegas, e nós não poderíamos descobrir o que o uso é de .Any
para qualquer dado List<>
, em C #.
Você pode verificar a validade de um elemento na matriz como a seguinte declaração:
if (MyList.Any()){ ...} //Returns true or false
Qual é exatamente o mesmo que
if (MyList.Count() != 0) { ... }
e é muito mais comum, legível e claro sobre a intenção da if
declaração.
No final, ficamos presos a esse pensamento:
.Any()
pode ser usado, funcionará da mesma forma, mas é menos claro sobre a intenção do programador e, nesse caso, não deve ser usado.
Mas sentimos que isso não pode estar certo; devemos estar faltando alguma coisa.
Nós somos?
Any()
é menos clara: Any()
parece mais clara para mim, especialmente com uma condição lambda. A tradução do código para o inglês na minha cabeça if(MyList.Count(o => o > 10) > 0)
se torna "O número de itens é maior que 10 e mais que 0?" enquanto if(MyList.Any(o => o > 10))
torna-se "Existem itens maiores que 10?"
Any
seja Exists
. O nome Linq provavelmente é mais inspirado em Haskell e Python, que também possuem todas / todas as funções.