Задать вопрос
@returnZero

Как устроен Dictionary в C#?

Всем привет, есть вопрос касательно внутреннего устройства Dictionary в С#. При инициализации Dictionary в нём создаются 2 внутренних массива buckets и entries. Как я понимаю их размер равен между собой(если что поправьте) и является ближайшим простым числом(3 например), при добавлении элемента мы высчитываем с него хэш-код специальной хэш-функцией которая является реализацией GetHashCode() объекта-ключа. И далее этот хэш-код с помощью модуля от размера словаря. Но я немного не понимаю что именно за индекс мы получаем - индекс в buckets или в entries?
Если в buckets, то откуда берется индекс в entries?
И правильно ли я понимаю что структура Entry - это по сути узел односвязного списка?
  • Вопрос задан
  • 183 просмотра
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • OTUS
    C# Developer. Professional
    6 месяцев
    Далее
  • Ulearn.me
    Основы программирования на примере C#. Часть 1
    1 неделя
    Далее
  • Ulearn.me
    Основы программирования на примере C#. Часть 2
    1 неделя
    Далее
Пригласить эксперта
Ответы на вопрос 1
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
Оба этих массива синхронные в первом хранится хэш во втором значение, за подробностями традиционно на гитхаб там исходники, только не пугайтесь их кода
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы