title: LINQ and CASE Sensitivity
body: <p>I have this LINQ Query:</p>
  
  <pre><code>TempRecordList = new ArrayList(TempRecordList.Cast&lt;string&gt;().OrderBy(s =&gt; s.Substring(9, 30)).ToArray());
  </code></pre>
  
  <p>It works great and performs sorting in a way that's accurate but a little different from what I want. Among the the result of the query I see something like this:</p>
  
  <p><strong>Palm-Bouter, Peter<br>
  Palmer-Johnson, Sean</strong></p>
  
  <p>Whereas what I really need is to have names sorted like this:</p>
  
  <p><strong>Palmer-Johnson, Sean<br>
  Palm-Bouter, Peter</strong></p>
  
  <p>Basically I want the '-' character to be treated as being lower than the character so that names that contain it show up later in an ascending search.</p>
  
  <p>Here is another example. I get:</p>
  
  <p><strong>Dias, Reginald<br>
  DiBlackley, Anton</strong></p>
  
  <p>Instead of:</p>
  
  <p><strong>DiBlackley, Anton<br>
  Dias, Reginald</strong></p>
  
  <p>As you can see, again, the order is switched due to how the uppercase letter 'B' is treated.</p>
  
  <p>So my question is, what do I need to change in my LINQ query to make it return results in the order I specified. Any feedback would be greatly appreaciated.</p>
  
  <p>By the way, I tried using <strong>s.Substring(9, 30).ToLower()</strong> but that didn't help.</p>
  
  <p>Thank you!</p>