title: Difference between the different overloads of String.Compare
body: <p>Concretely what is the difference between</p>
  
  <ul>
  <li><a href="http://msdn.microsoft.com/en-us/library/e6883c06.aspx" rel="nofollow noreferrer"><code>String.Compare(String, String, StringComparison)</code></a> and</li>
  <li><a href="http://msdn.microsoft.com/en-us/library/cc190529.aspx" rel="nofollow noreferrer"><code>String.Compare(String, String, CultureInfo, CompareOptions)</code></a></li>
  </ul>
  
  <p>I feel like that the second one offers <a href="http://msdn.microsoft.com/en-us/library/system.globalization.compareoptions.aspx" rel="nofollow noreferrer">more options</a> (comparison using any culture instead of only the current one or invariant one, ignore special characters, ignore the width of katakanas (!!) etc...) <a href="http://msdn.microsoft.com/en-us/library/system.stringcomparison.aspx" rel="nofollow noreferrer">than the first one</a>. Both have been introduced it in .NET 2.0 so I guess it can't be a question of backward compatibility.</p>
  
  <p>So what's the difference and when should I use the first one and when should I use the second one? </p>
  
  <p>I had a look at <a href="https://stackoverflow.com/questions/44288/differences-in-string-compare-methods-in-c-sharp">this post</a> and this <a href="http://msdn.microsoft.com/en-us/library/dd465121.aspx" rel="nofollow noreferrer">article</a>, but I think they're dealing with a slightly different matters.</p>