Поиск в словаре будет медленнее, даже если обе операции O (1).Индексирование в предопределенную область памяти массива (из которой составлены списки данных) включает меньше операций;скорее всего, это вопрос поиска начала блока памяти и добавления смещения индекса.
Hashtable поиски, с другой стороны, амортизируются O (1).В зависимости от того, как реализована хеш-таблица, вам потребуется вычислить потенциально сложный хеш-код, индексировать в сегмент, просмотреть часть связанного списка, на который указывает сегмент, и проверить равенство, чтобы убедиться, что найденный элемент соответствуеттот, который вы после.Это намного больше работы, чем операция с индексом списка.
Две операции могут относиться к одной и той же категории сложности времени (в данном случае O (1)), но могут радикально отличаться постоянным коэффициентом выполняемой ими работы.Так обстоит дело здесь.
Взгляните на Словарь часть 2, реализация .NET , если вы хотите более подробно изучить работу словарей C #.