title: How do I sort strings alphabetically while accounting for value when a string is numeric?
body: <p>I'm trying to sort an array of numbers that are strings and I'd like them to sort numerically.</p>
  <p>The catch is that <strong>I cannot convert the numbers into int</strong>.</p>
  <p>Here is the code:</p>
  <pre><code>string[] things= new string[] { &quot;105&quot;, &quot;101&quot;, &quot;102&quot;, &quot;103&quot;, &quot;90&quot; };
  
  foreach (var thing in things.OrderBy(x =&gt; x))
  {
      Console.WriteLine(thing);
  }
  </code></pre>
  <p><em>Output</em>:</p>
  <pre><code>101, 102, 103, 105, 90
  </code></pre>
  <p>I'd like:</p>
  <pre><code>90, 101, 102, 103, 105
  </code></pre>
  <p><strong>EDIT:</strong>
  The output can't be <code>090, 101, 102...</code></p>
  <p>Updated the code sample to say &quot;<code>things</code>&quot; instead of &quot;<code>sizes</code>&quot;. The array can be something like this:</p>
  <pre><code>string[] things= new string[] { &quot;paul&quot;, &quot;bob&quot;, &quot;lauren&quot;, &quot;007&quot;, &quot;90&quot; };
  </code></pre>
  <p>That means it needs to be sorted alphabetically and by number:</p>
  <pre><code>007, 90, bob, lauren, paul
  </code></pre>