Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 3028|Отговор: 0

[Източник] .NET/C# колекция Any() или Count(), което е по-бързо

[Копирай линк]
Публикувано в 28.06.2023 г. 19:34:31 ч. | | | |
Изисквания: Наскоро колегите ми от екипа на проекта промениха броя на данни() > 0 на Any(), за да преценят дали има данни в колекцията (не в базата данни за заявки IQueryble), и след това попитаха защо е променено (оптимизирано), но нямаше отговор.

Използвайте бенчмаркове, за да сравните кой от следните Any() и Count() е по-бърз.

Нека започнем с заключението (в .NET Framwork):Брой > Всеки() > Брой()В .NET 6, производителността Count() и Any() не са много различни, но все пак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