title: Upper vs Lower Case
body: <p>When doing case-insensitive comparisons, is it more efficient to convert the string to upper case or lower case?  Does it even matter?</p>
  
  <p>It is suggested <a href="https://stackoverflow.com/questions/9033/hidden-features-of-c#12137">in this SO post</a> that C# is more efficient with ToUpper because "Microsoft optimized it that way."  But I've also read <a href="http://www.petefreitag.com/item/175.cfm" rel="noreferrer">this argument</a> that converting ToLower vs. ToUpper depends on what your strings contain more of, and that typically strings contain more lower case characters which makes ToLower more efficient.</p>
  
  <p>In particular, I would like to know:</p>
  
  <ul>
  <li>Is there a way to optimize ToUpper or ToLower such that one is faster than the other?</li>
  <li>Is it faster to do a case-insensitive comparison between upper or lower case strings, and why?</li>
  <li>Are there any programming environments (eg. C, C#, Python, whatever) where one case is clearly better than the other, and why?</li>
  </ul>