O que é mais rápido, pesquisa de hash ou pesquisa binária?

Quando é fornecido um conjunto estático de objetos (estático no sentido de que uma vez carregado, raramente muda, se é que alguma vez muda) para o qual são necessárias pesquisas simultâneas repetidas com desempenho ideal, o que é melhor, umHashMap ou uma matriz com uma pesquisa binária usando algum comparador personalizado?

A resposta é uma função do tipo de objeto ou estrutura? Hash e / ou desempenho de função igual? Hash singularidade? Tamanho da lista?Hashset tamanho / tamanho definido?

O tamanho do conjunto que eu estou vendo pode variar de 500k a 10m - caso essas informações sejam úteis.

Enquanto procuro uma resposta em C #, acho que a verdadeira resposta matemática não está no idioma, portanto não incluo essa tag. No entanto, se houver itens específicos do C # a serem considerados, essas informações serão desejadas.

questionAnswers(16)

yourAnswerToTheQuestion