List Any vs Count, which one is better for readability? Resharper thinks I should change this

while (dockPanel.Contents.Count() &gt; 0)


to the following:

while (dockPanel.Contents.Any())


Without thinking twice about it, I switched to the any version because .Any() is more readable for me. But a coworker of mine sees the change and asked why I did it. I explained that this improves readability but his objection was the following:


Any is an ambiguous word.
People may not be familiar with LINQ, so they might not be aware of what Any does at first glance.
Count > 0 is universal. You don't have to know C# to find out what you're trying to do.


The confusion is probably compounded by the fact that I'm working overseas. People here speak little to no English here.

Which method should I stick with?
For me, it's about intent. What does your code's business logic say if you read it in English (or your native language)?

It usually comes to me as "If there are any employees who are in the management role, then show a particular option panel".

And that means .Any(). Not .Count(). Very few times will I find myself using .Count() unless the underlying rule talks about "more than one" or "more than two" of something.

As a bonus, .Any() can be a performance enhancement because it may not have to iterate the collection to get the number of things. It just has to hit one of them. Or, for, say, LINQ-to-Entities, the generated SQL will be IF EXISTS(...) rather than SELECT COUNT ... or even SELECT * ....