Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 3028|Ответ: 0

[Источник] .NET/C# collection Any() или Count(), что быстрее

[Скопировать ссылку]
Опубликовано 28.06.2023 19:34:31 | | | |
Требования: Недавно мои коллеги из команды проекта изменили количество данных() > 0 на Any(), чтобы оценить, есть ли данные в коллекции (не в базе запросов IQueryble), а затем спросили, почему это было изменено (оптимизировано), но ответа не было.

Используйте бенчмарки, чтобы сравнить, какой из следующих Any() и Count() быстрее.

Начнём с вывода (в .NET Framwork):Count > Any() > Count()В .NET 6 производительность Count() и Any() не сильно отличаются, но всё жеРекомендуется любой() для сбора наличия данных

Тестовый код следующий:


.NET Framework 4.8.1Эталонные данные следующие:



.NET 6Эталонные данные следующие:



Разве вы не говорили это в .NET Framwork Any() > Count() performance? Почему Count() быстрее List? Причина в том, что базовый метод Count() в List вызывает поле Count, как показано на рисунке ниже:




(Конец)





Предыдущий:параметр метода .NET/C# NULL null
Следующий:ASP.NET разница между ThreadStatic, CallContext и HttpContext
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com