title: Which is faster, Hash lookup or Binary search?
body: <p>When given a static set of objects (static in the sense that once loaded it seldom if ever changes) into which repeated concurrent lookups are needed with optimal performance, which is better, a <code>HashMap</code> or an array with a binary search using some custom comparator?</p>
  
  <p>Is the answer a function of object or struct type?  Hash and/or Equal function performance?  Hash uniqueness?  List size?  <code>Hashset</code> size/set size?</p>
  
  <p>The size of the set that I'm looking at can be anywhere from 500k to 10m - incase that information is useful.</p>
  
  <p>While I'm looking for a C# answer, I think the true mathematical answer lies not in the language, so I'm not including that tag.  However, if there are C# specific things to be aware of, that information is desired.</p>