Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 3028|Відповідь: 0

[Джерело] .NET/C# колекція Any() або Count(), що швидше

[Копіювати посилання]
Опубліковано 28.06.2023 19:34:31 | | | |
Вимоги: Нещодавно мої колеги з проєктної команди змінили кількість даних() > 0 на Any(), щоб оцінити, чи є дані в колекції (не в базі запитів IQueryble), а потім запитали, чому це було змінено (оптимізовано), але відповіді не було.

Використовуйте бенчмарки для порівняння, який із наступних Any() і Count() швидший.

Почнемо з висновку (у .NET Framwork):Count > Any() > Count()У .NET 6 продуктивність Count() і Any() майже не відрізняються, але все жAny() рекомендується для збору наявності даних

Тестовий код виглядає так:


.NET Framework 4.8.1Еталонні дані такі:



.NET 6Еталонні дані такі:



Хіба ти не казав це у .NET Framwork Any() > Count()? Чому Count() швидший за List? Причина в тому, що базовий метод Count() у List викликає поле Count, як показано на рисунку нижче:




(Кінець)





Попередній:параметр методу .NET/C# NULL null
Наступний:ASP.NET різниця між ThreadStatic, CallContext і HttpContext
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com