Search
Write a publication
Pull to refresh
11
0
Send message

"Все время" я выделил, так как порой мы можем выполнить все необходимые операции над обычным словарем, а потом уже вернуть отсортированную через OrderBy версию. Из-за разницы между O(1)и O(log(n))нам не стоит поддерживать сортировку все время, если это важно только для вывода. Хотя возможно тут очевидный пример, который не вписывается в случаи применения SortedDictionary.
Под подводными я отметил, что эффективность Dictionary зависит от качества хеш функции, и что при частом росте числа элементов, мы будем все время спотыкаться об изменение размера бакетов, что замедлит наши операции вставки. С SortedDictionary основным подводным является сложность выполнения операций, про которую я писал.
Если под ожидаемыми подводными имелась ввиду потокобезопасность, пожалуй да, моя недоработка, сегодня допишу. Спасибо.
Постараюсь так же более явно выделить подводные описанные выше.

Не приходилось сталкиваться на практике с этими классами, поэтому не написал, спасибо, изучу и их. По поводу lock не хотел углубляться в реализацию.

Тут да, ошибся и не раскрыл разницу между Semaphore и SemaphoreSlim, прошу прощение. SemaphoreSlim не подойдет для межпроцессорной синхронизации, для этой задачи нужно использовать именно Semaphore.

Про Lazy слышал, но кроме как в учебных примерах не пользовался, поэтому забыл. Благодарю за напоминание.

Благодарю. В следующий раз постараюсь разобраться с редактором кода лучше. В этот раз текст из него выглядел крайне некрасиво, но подозреваю, что я что-то делал не так.

Information

Rating
Does not participate
Registered
Activity

Specialization

Fullstack Developer
Senior
.NET
Entity Framework
PostgreSQL
Microsoft SQL Server
React
Redux
TypeScript
Docker
TDD/BDD
Unix