Performance

Array vs Dictionary lookup in C#

We were taught about data structures that a Dictionary has O(1) lookup and the linear search in an unsorted array is O(n). So based on this we can assume that when we need frequent access by a key we should use a Dictionary, right?
Well, not quite always.