Это не одно и то же.
Any
вызовет исключение, если используется для ссылки null
.
Со списками вы можете думать о .Any()
как .Count() != 0
(*)
Возможно, вам придется проверить оба, и вы должны сделать нулевую проверку перед вызовом Any()
на вашем IEnumerable
.
Один из способов - проверить их на наличие одного удара с помощью нулевой безопасной навигации ?.
, как в Ответ Тьерри V .
Но иногда вы хотите броситьпользовательское исключение, если у вас есть нулевое значение, которое вы не должны иметь, и обрабатываете пустой список как правильный ввод, поэтому все зависит от контекста.
Просто помните, что они разные.
(*): как замечено в комментарии, .Any()
фактически не реализовано как Count() == 0
.Для списков это функционально эквивалентно, но лучше использовать Any()
, чтобы проверить, является ли IEnumerable
пустым или нет, потому что Count()
может потребоваться пройти через все элементы.